x_s_s_1 发表于 2011-4-25 10:14:23

可否用lisp不打开制图软件(非autocad)直接执行其命令行输入命令

请问各位一个画图软件有命令行输入,如何用lisp不打开软件直接执行这个命令

highflybird 发表于 2011-4-25 10:23:41

本帖最后由 highflybird 于 2011-4-25 10:23 编辑

VLISP是解释执行的语言,意味着只有开了CAD才能解释执行,你如何能不打开CAD去执行?

x_s_s_1 发表于 2011-4-25 12:27:54

本帖最后由 x_s_s_1 于 2011-4-25 13:55 编辑

回复 highflybird 的帖子

谢谢,我说的不是不打开autocad,而是在autocad中调用其它cad软件(该软件未提供端口),后台执行也可以,也就是说我在后台打开我需要打开的程序,然后向其发送指令,看到过一个帖子http://www.stonedwg.com/article.asp?id=204,不知他山是如何实现的

zark 发表于 2011-4-25 15:06:17

(setq dbx (Vlax-Get-Or-Create-Object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "acadver") 1 2))))

x_s_s_1 发表于 2011-4-25 15:32:24

回复 zark 的帖子

我的应用程序是D://Program Files//PKPM_PC//CFG//Modifyw.exe,我如何打开它,然后如何向其sendkeys

x_s_s_1 发表于 2011-4-25 17:28:46

本帖最后由 x_s_s_1 于 2011-4-25 18:29 编辑

回复 highflybird 的帖子

(setq ws (vlax-create-object "WScript.Shell"))
(vlax-invoke-method ws'run "Modifyw")
(vlax-invoke-method ws 'sleep 100)返回; 错误: ActiveX 服务器返回错误: 未知名称: SLEEP
(vlax-invoke-method ws'AppActivate "ready");总是返回:vlax-false是什么意思呢?如何知道”指定在要激活的应用程序窗口的标题栏的标题“
(vlax-invoke-method ws 'sendkeys "ttodwg")

x_s_s_1 发表于 2011-4-26 08:08:06

搞了一晚,自己是没能力解决了,厚颜顶起

highflybird 发表于 2011-4-26 09:22:33

本帖最后由 highflybird 于 2011-4-26 09:33 编辑

(setq ws (vlax-create-object "WScript.Shell"))
(vlax-invoke-methodws 'run "calc")                  
;;(vlax-invoke-method ws 'sleep 100)               ; 错误: ActiveX 服务器返回错误: 未知名称: SLEEP
(command "delay" 2000)                                  ;最好用delay来替代,因为sleep必须要在脚本里面运行,时间可以设置长点。
(vlax-invoke-method ws 'AppActivate "计算器");此处应输入完整的程序窗口名称                                       
                                                                         ;例如,"TH-Arch2010 - "   
(vlax-invoke-method ws 'sendkeys "11233");这样你就可以看到效果了   
(vlax-release-object ws)

x_s_s_1 发表于 2011-4-26 10:35:25

可以了,非常感谢

x_s_s_1 发表于 2011-4-26 11:59:18

回复 highflybird 的帖子

还有个问题,sendkey的时候有汉字怎么办?转成asc!!码吗?
页: [1] 2
查看完整版本: 可否用lisp不打开制图软件(非autocad)直接执行其命令行输入命令