明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 无痕

[原创] !将vbscript移植到lisp!

    [复制链接]
发表于 2007-8-13 12:53 | 显示全部楼层
源程序都出来了,不顶不行.我顶!
发表于 2007-8-13 13:01 | 显示全部楼层
把VBS换成JS可以么?
发表于 2007-8-13 20:42 | 显示全部楼层

如果支持wscript.CreateObject就明显的用到了wscript.exe

也就是说狂刀兄至少有一部分代码

是写出为vbs文件后再用(startapp "wscript.exe" ..vbs)方式运行的!

不知道说对了没有!

发表于 2007-8-13 20:46 | 显示全部楼层
这种方式的返回值LSP收得到吗?
发表于 2007-8-13 20:53 | 显示全部楼层

晕倒!~当然可以收的到啦!

如果你没有忘记还有一个vl.application对象!去VBA版板看看吧!

不过我看刀兄是对不要返回值的才用的wscript哦!

测试很简单!试试wscript.exe运行的msgbox是不是独立于autocad运行的!

 楼主| 发表于 2007-8-13 22:31 | 显示全部楼层
本帖最后由 作者 于 2007-8-14 1:52:50 编辑

1.没有用到 wscript.exe,也没有写*.vbs

程序里面加一句: (xxexpr "[ =]wscript\\." str " " "m")

就是在把 "wscript." 替换为 " ".

2.如果要支持js,  就把 (vlax-put-property *wsc "language" "vbs")改一下(目前的版本还未开通,但是只要加两行代码基本就可以了)

或可以考虑写一个*.js文件,然后执行之.其实这个方式是最原汁原味的移植,可以说基本没有限制,如果运行有问题,那就是原程序有问题.打算今晚就写这个版本.不过这样的话,可能不同步.返回值成问题.估计是这样,先试试看...

3.本版程序有返回值,如果不支持返回值,那么移植就意义不大.

4.对于注解,我编写的时候一直没把注解当回事.并没有专门处理.不知道龙龙仔为什么试不通.请看:

(setq *wsc (vla-GetInterfaceObject(vlax-get-acad-object)"ScriptControl"))
(vlax-put-property *wsc "language" "vbs")
(vlax-invoke *wsc 'ExecuteStatement "a = \"测试\"  '注解")
(vla-eval *wsc "msgbox (a) '测试注解")
或:
(vlax-invoke *wsc 'ExecuteStatement "msgbox a '注解")

均运行正常.

 楼主| 发表于 2007-8-14 01:59 | 显示全部楼层

上面*wsc改为(setq *wsc (vlax-create-object "ScriptControl"))同样返回正常.

不会是把注解的符号 '("键) 写成了`(~键)吧?

发表于 2007-8-14 16:24 | 显示全部楼层
呵,太精彩了
发表于 2007-8-14 19:47 | 显示全部楼层
JS版的出来没有啊.
发表于 2007-8-15 12:55 | 显示全部楼层
无痕在26樓把程序都寫出來了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 09:17 , Processed in 0.194506 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表