yqwzx 发表于 2003-12-18 00:50:00

在cad中调用外部命令时如何自动进行选择

在cad中调用外部命令时如何自动进行选择。如
自定义了一个程序c:aa,程序调用了cad自带的修改文字的程序cht
我想在自定义程序中调用cht,让cht自动选择图中全部的文字,将字高改为
500,不需人为干涉,该怎么作啊???
(defun c:aa ()
……
……
(c:cht);如何让cht自动选择图中所有文字并修改?
……
……
(princ)
)

meflying 发表于 2003-12-18 08:22:00

这似乎不是命令调用问题,是你对编程还不熟悉,这是基本的功能
(ssget "x" '((0 . "MTEXT")))

(ssget "x" '((0 . "TEXT")))
然后从返回的选择集中取出文字对象进行修改。

如果你还不会的话,估计是要慢慢先学习吧,
或者你说出完整点的需求,让别人给你写

yqwzx 发表于 2003-12-18 20:13:00

斑竹可能还没理解我的意思,我想问的是,在aa这个程序中如何自动的执行cht这个程序。
cht是一个独立的程序,在运行中我们需要按照它的提示来进行,比如它要求你选择几个字符或全部的字符。总之我想问的是在一个程序中如何执行另外一个独立的命令而这个外部命令可能需要你一定的交互操作,而我想让它向一个子函数一样如:(cht enth)来执行,程序所要的交互操作由aa这个程序来执行,选择集ent 和字高h 由aa来赋值给它.就像在程序中我们调用
(command "move" ent p1 p2)一样来调用,但是问题在于cht是一个独立的程序,我们并不能象(cht eng h)来使用。呵呵,不知道我这样说明白了没有。希望斑竹能给我指点迷津.

meflying 发表于 2003-12-18 20:47:00

是你没有说明白,你说的这个是参数的传递问题,不是选择问题,你的cht要做成带参数的函数才可以这样用,而不是命令。
你对LISP的语句几乎是没有理解,一个括号对(cht ent h)其中,cht是函数名,ent和h则是参数,如:
(defun cht ( ent h / a b)
...
)这样调用时就必须是(cht ent h)调用同时就将参数ent h传给了cht函数。
还有你说的command函数的调用也说的不对,
(command "move" ent p1 p2)有command,而你举例(cht ent h)为什么又没有command,这两个就没有可比性,所以不能说前者行而后者为什么不行。
如果你要想move那样来调用,可以看看下面这个:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=13699&star=1&skin=0
页: [1]
查看完整版本: 在cad中调用外部命令时如何自动进行选择