代码组合代码 命令怎么写,求高手支招
本帖最后由 xj6019 于 2020-1-9 15:48 编辑问题有点绕,举例说明:D命令是字母加数字的命令,比方说D1~20,D+每个数字是一个命令,我想在A命令运行的时候先执行一下D命令里的其中一个,但是D后面的数字是变化的,不可能每个数字都写一个A命令代码,
所以我想,用什么代码可以在运行A 命令的时候,执行D变化的命令。
命令执行顺序:A--空格---输入数字(10(变化的))----先执行一次D10(变化的)命令----然后才执行A命令的主命令
求大佬们给我一个能完成以上功能的代码吧
谢谢!!!!
本帖最后由 start4444 于 2020-1-9 12:49 编辑
直接加一句改标注样式的码就好啦,要那么折腾啊···
把你那句改为:
(command "-dimstyle" "r" (strcat "D" (itoa Dbiaozhu)))
D是你的标注样式名除掉后面数字的文字
http://www.mjtd.com/forum.php?mod=viewthread&tid=168949&highlight=255&mobile=2 Bao_lai 发表于 2020-1-9 07:38
http://www.mjtd.com/forum.php?mod=viewthread&tid=168949&highlight=255&mobile=2
纯数字的,已经被其他占用,要带字母前缀拼合的!! (defun d-n (/ n)
(setq n 0)
(repeat 10
(setq n (1+ n))
(eval (read (strcat "(defun c:d" (itoa n) " () (alert \"D" (itoa n) "命令" "\"))")))
)
)
(defun c:a (/ num)
(d-n)
(if (setq num (getint "\n请输入1-10的数字:"))
(progn
(eval (read (strcat "(c:d" (itoa num) ")")))
(alert "a命令")
)
)
)
这个样子? 不就是关键字么? 本帖最后由 xj6019 于 2020-1-9 12:01 编辑
taoyi0727 发表于 2020-1-9 08:56
(defun d-n (/ n)
(setq n 0)
(repeat 10
老师,研究了半天,套不上我需要的场景呢,我说一下我需要干嘛哦
我是需要用这个函数切换标注比例
A命令是一个多级标注的命令,里面有根据比例确定两层标注之间距离的函数
D+数字 是切换标注比例的
我想运行A命令的时候,执行一次D标注比例函数,来确保比例是一致的
如果是普通命令,放在其他命令里面执行的话,只需要写个
(C:d10) ----比如是切换到10倍标注比例
有没有一个简单的函数
来执行这个切换命令呢(C:d+MMMM)) 执行读取的代码比如是MMMM
这个需要能不能用一句代码可以执行啊
非常感谢!!
(defun c:b1 ()
(alert "b1")
)
(defun c:b2 ()
(alert "b2")
)
;;参数:prefix:命令前缀
;;参数:n:命令后续
(defun T-command (prefix n)
(if (and prefix n)
(eval (read (strcat "(" prefix n ")")))
)
)
(T-command "c:b" "1")
(T-command "c:b" "2") 本帖最后由 xj6019 于 2020-1-9 12:37 编辑
taoyi0727 发表于 2020-1-9 12:22
(defun c:b1 ()
(alert "b1")
)
这个代码是start4444老师写给我的多级标注的代码的开头
(defun c:dvv (/ angx angxxd dim1 dim2 dimlst npt1 pt2 pt3 ptlst ss)
(if (not Dbiaozhu) (setq Dbiaozhu (getdist "\n標註比例:")) (setq Dbiaozhu (if (setq D (getdist (strcat "\n標註比例<" (rtos Dbiaozhu 2 2) ">:"))) D Dbiaozhu)))
(C:d+Dbiaozhu) ;这里想加个函数,Dbiaozhu要随时变化
(setq n 0 dimlst '() ss (ssget '((0 . "DIMENSION"))))
................
................
老师,我是这个意思,您能理解我的需求了吗,用常用的固定命令格式没法满足
这个问题确实有点不太好表达哦
多多体谅!!!
start4444 发表于 2020-1-9 12:43
直接加一句改标注样式的码就好啦,要那么折腾啊···
把你那句改为:
(command "-dimstyle" "r" (strcat ...
我理解的应该是这个意思吧,为什么执行命令后,会出现让输入标注样式名称的输入框呢,我是想直接执行就好
难道还是我理解的有误呀??老师再帮我看看呗
(defun c:dvv (/ angx angxxd dim1 dim2 dimlst npt1 pt2 pt3 ptlst ss)
(if (not Dbiaozhu) (setq Dbiaozhu (getdist "\n標註比例:")) (setq Dbiaozhu (if (setq D (getdist (strcat "\n標註比例<" (rtos Dbiaozhu 2 2) ">:"))) D Dbiaozhu)))
(command "-dimstyle" "r" (strcat "寸法M--" (itoa Dbiaozhu)))
......................
页:
[1]
2