自定义命令在AutoLSP中应用
自定义一个命令,比如tt,但运行时需要输入参数,如何在lis中调用,象CAD内置命令一样,比如(command "c:tt" pt1 “”),pt1为一个点。 不知如何实现。 定义代码(defun tt (pt1 / )(xxxx))调用代码(setq pt1 xxxx) (tt pt1)
是这个意思吗,这个好像是很基础的东西啊。。 定义代码(defun c:tt(/ ) xxx),为自定义命令,而不是函数。 wandong 发表于 2014-5-11 11:39 static/image/common/back.gif
定义代码(defun c:tt(/ ) xxx),为自定义命令,而不是函数。
你根本就不了解命令和函数的区别,C:tt就是函数名,而tt就是命令名。当然了,自定义命令和CAD内部命令也是有区别的。 (command "c:tt" (getpoint) “”)
是这个意思吗? 整体趣向不明,一个猜想...
(defun C:tt ()
(setq pt1 (getpoint))
(tt pt1)
)
;;; 此处 pt1 它处取得
(defun tt (pt1) ...) lyqiezi 发表于 2014-5-11 12:47 static/image/common/back.gif
(command "c:tt" (getpoint) “”)
是这个意思吗?
command函数后面带命令名(命令名要加双引号),C:tt是命令名吗? 上面我搞错了,
但是好像可以直接把(C:TT)作为一个函数调用,前面看到有人说过,不过自己没试过 nzl1116 发表于 2014-5-11 12:41 static/image/common/back.gif
你根本就不了解命令和函数的区别,C:tt就是函数名,而tt就是命令名。当然了,自定义命令和CAD内部命令也是 ...
我明白你的意思了,defun后面接着的就是自定义的函数,
defun c:tt,则c:tt为函数
defun tt,则tt为函数
两个函数的区别就是C:tt是可以单独用tt命令运行的函数
tt则需要用其它函数调用并返回 我的意思是要完成一个任务,需要两个以前自定义过的命令,当然可以将原来的代码变为函数,这样可以接受参数,但是如果能象cad内部命令一样通过command函数输入序列来完成,就不需要新建函数。好像自定义命令不能使用command函数,但如果写成(c:tt),则需要输入参数(参数在新命令中已经获得),这样会变得重复而没有必要。按帮助文件说,好像没有什么办法实现,不知各位高手意下如何。
页:
[1]
2