fawn_lgc 发表于 2003-3-28 09:01:00

关于VLAX-Add-Cmd函数--如何使自定义命令同内部命令一样

关于VLAX-Add-Cmd函数--如何使自定义命令同内部命令一样.
    使用VLAX-Add-Cmd函数可以向AutoCAD注册用户命令.
以下面程序为例在"单文档兼容模式"下运行没有发现问题.
但在多文档模式下切出现下面奇怪的问题:

先将程序添加到启动组;

打开任意dwg文档如:图1.dwg,在命令行输入dsin成功执行该命令;
打再开另一dwg文档如:图2.dwg,在命令行输入dsin成功执行该命令;
通过窗口切换回"图1.dwg",在命令行输入dsin执行该命令时,出现下图的错误.

本人百思不得其解,希望能有高手抽神来研究一下该如何解决.
(Defun DSin (/ x n z s dx cm bl x0 y0);;绘制正弦曲线的程序;
       (SetQ x 0
             p (GetPoint "\n基点: ") x0 (Car p) y0 (Cadr p)
             n (GetInt "\n精度(全线上直线片段数): ")
             z (GetReal "\n周期数: ")
             s (GetReal "\n波高系数: ")
             dx (/ (* z 2 Pi) n)
       )
       (SetQ cm (GetVar "cmdecho") bl (GetVar "blipmode"))
       (SetVar "cmdecho" 0) (SetVar "blipmode" 0)
       (Command "pline" p)
       (Repeat n
               (SetQ x (+ x dx))
               (Command (List (+ x0 x) (+ y0 (* s (Sin x)))))
                                                      
       )
       (Command "")
       (SetVar "cmdecho" cm) (SetVar "blipmode" bl) (PrinC)
)
(VLAX-Add-Cmd "DSin" 'DSin);注册用户命令;
;(注:上述程序引至陈伯雄的<Vlisp技巧与范例>)

陈伯雄 发表于 2003-3-28 12:51:00

VLISP不能真正支持多图档操作的...

meflying 发表于 2003-3-28 14:48:00

将它做到菜单里就可以了

fawn_lgc 发表于 2003-3-28 15:16:00

使用命令行或快捷命令不行

fawn_lgc 发表于 2003-3-28 15:18:00

真遗憾

陈伯雄 发表于 2003-3-28 15:33:00

只有真正ActiveX才能真正支持多图档操作。但是meflying先生的主意肯定有效,而且更

只有真正ActiveX才能真正支持多图档操作。但是meflying先生的主意肯定有效,而且更简洁...

fawn_lgc 发表于 2003-3-29 10:48:00

具体怎么做?

black_mud 发表于 2003-3-29 11:18:00

请教版主

请教版主,在CAD中怎样实现两个图元的合并,比如把两个不相交的直线合并成一个图元

meflying 发表于 2003-3-31 09:11:00

附带一个与菜单文件同名的*.MNL文件,在文件中可用LISP语句定义命令。或直接加在ac

附带一个与菜单文件同名的*.MNL文件,在文件中可用LISP语句定义命令。或直接加在acad.mnl中

fawn_lgc 发表于 2003-4-3 15:31:00

是这样吗?还是不行哦。

页: [1] 2
查看完整版本: 关于VLAX-Add-Cmd函数--如何使自定义命令同内部命令一样