明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4352|回复: 13

[提问] 自定义命令在AutoLSP中应用

[复制链接]
发表于 2014-5-10 19:00:35 | 显示全部楼层 |阅读模式
自定义一个命令,比如tt,但运行时需要输入参数,如何在lis中调用,象CAD内置命令一样,比如(command "c:tt" pt1 “”),pt1为一个点。 不知如何实现。
发表于 2014-5-10 23:30:01 | 显示全部楼层
定义代码(defun tt (pt1 / )(xxxx))
调用代码(setq pt1 xxxx) (tt pt1)
是这个意思吗,这个好像是很基础的东西啊。。
 楼主| 发表于 2014-5-11 11:39:07 | 显示全部楼层
定义代码(defun c:tt(/ ) xxx),为自定义命令,而不是函数。
发表于 2014-5-11 12:41:50 | 显示全部楼层
wandong 发表于 2014-5-11 11:39
定义代码(defun c:tt(/ ) xxx),为自定义命令,而不是函数。

你根本就不了解命令和函数的区别,C:tt就是函数名,而tt就是命令名。当然了,自定义命令和CAD内部命令也是有区别的。
发表于 2014-5-11 12:47:44 | 显示全部楼层
(command "c:tt" (getpoint) “”)
是这个意思吗?
发表于 2014-5-11 12:53:01 | 显示全部楼层
整体趣向不明,一个猜想...

(defun C:tt ()
  (setq pt1 (getpoint))
  (tt pt1)
)

;;; 此处 pt1 它处取得
(defun tt (pt1) ...)  
发表于 2014-5-11 12:55:17 | 显示全部楼层
lyqiezi 发表于 2014-5-11 12:47
(command "c:tt" (getpoint) “”)
是这个意思吗?

command函数后面带命令名(命令名要加双引号),C:tt是命令名吗?
发表于 2014-5-11 13:09:52 | 显示全部楼层
上面我搞错了,
但是好像可以直接把(C:TT)作为一个函数调用,前面看到有人说过,不过自己没试过
发表于 2014-5-11 13:48:56 | 显示全部楼层
nzl1116 发表于 2014-5-11 12:41
你根本就不了解命令和函数的区别,C:tt就是函数名,而tt就是命令名。当然了,自定义命令和CAD内部命令也是 ...

我明白你的意思了,defun后面接着的就是自定义的函数,
defun c:tt,则c:tt为函数
defun tt,则tt为函数
两个函数的区别就是C:tt是可以单独用tt命令运行的函数
tt则需要用其它函数调用并返回
 楼主| 发表于 2014-5-11 18:00:13 | 显示全部楼层
我的意思是要完成一个任务,需要两个以前自定义过的命令,当然可以将原来的代码变为函数,这样可以接受参数,但是如果能象cad内部命令一样通过command函数输入序列来完成,就不需要新建函数。好像自定义命令不能使用command函数,但如果写成(c:tt),则需要输入参数(参数在新命令中已经获得),这样会变得重复而没有必要。按帮助文件说,好像没有什么办法实现,不知各位高手意下如何。

点评

用ARX可以实现  发表于 2014-5-11 18:52
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 19:48 , Processed in 0.170875 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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