adc
发表于 2011-9-20 00:27:33
690994 发表于 2011-9-19 11:37 static/image/common/back.gif
回车重复命令问题我也解决了。
能不能贴出来欣赏欣赏?
690994
发表于 2011-9-20 08:54:48
adc 发表于 2011-9-20 00:27 static/image/common/back.gif
能不能贴出来欣赏欣赏?
请参看我以前贴出代码,将vla-sendcommand发送的字符参数设为一
全局变量A或保存到图中,再定义一个命令C:BB执行这个变量A。
再将vla-sendcommand后面的字符改为命令BB即可。
这样,各种情况下都是执行BB命令,然后BB命令再执行变量A具体内容,
按空格就能重复执行BB达到目的。
daidong013
发表于 2011-9-20 10:23:16
690994 发表于 2011-9-20 08:54 static/image/common/back.gif
请参看我以前贴出代码,将vla-sendcommand发送的字符参数设为一
全局变量A或保存到图中,再定义一个命令 ...
朋友:写了这么多还是完整的贴个出来吧!~~呵呵!~~
690994
发表于 2011-9-20 10:36:36
daidong013 发表于 2011-9-20 10:23 static/image/common/back.gif
朋友:写了这么多还是完整的贴个出来吧!~~呵呵!~~
源码没带在身边,下次发上。
其实按我在12楼发的代码按上面的改下即可。
我自己就懒得改了。
xiaxiang
发表于 2011-9-20 14:31:48
690994 发表于 2011-9-20 10:36 static/image/common/back.gif
源码没带在身边,下次发上。
其实按我在12楼发的代码按上面的改下即可。
我自己就懒得改了。
强烈建议贴上完整的代码
gbhsu
发表于 2011-9-20 21:47:52
690994 发表于 2011-9-20 08:54 static/image/common/back.gif
请参看我以前贴出代码,将vla-sendcommand发送的字符参数设为一
全局变量A或保存到图中,再定义一个命令 ...
没看到你的源码,这样做每次可能还要出现未知命令的提示
我是将未知命令重新定义成命令,可能是繁了点,但不出现未知命令的提示
建议将源码贴出来计论一下
690994
发表于 2011-9-21 10:12:12
gbhsu 发表于 2011-9-20 21:47 static/image/common/back.gif
没看到你的源码,这样做每次可能还要出现未知命令的提示
我是将未知命令重新定义成命令,可能是繁了点, ...
我以前也是将自己常用的定义成命令,但这样还是不够用,
全部定义又太多命令了,不知会不会影响速度。
至于未知命令提示还是不能消除,好象是CAD判断是未知命令
后才会执行我们定义的程序。好象在论坛看到有个变量能控制
SSGET不显示请选择实体提示的,对这个不知有没在效。
这个不影响使用,我也就懒得试了。
我的代码如下,samcom对应内容是我自己定义的功能。
(defun unknownCommand (calling-reactor commandInfo / c n)
(setq c (strcase (car commandInfo)))
(if (and(setq n(vl-string-search "." c))(wcmatch(substr c n 1) "")) ;f.5>F0.5
(setq c (strcat(substr c 1 n)"0"(substr c (1+ n))))
)
(setq n t)
(cond
((or(wcmatch c "0,200,201,255,256")
(and(wcmatch c "##")(wcmatch c "~0#"))
)
(setq samcom(strcat"(sam_activelayer \""(vl-princ-to-string c)"\") "))
)
((wcmatch c ",###,####,#####,######,#######,########")
(if(= c "345")(setq c "12345"))
(if(= c "678")(setq c "6789"))
(setq samcom(strcat "(sam_onlayer \"" (vl-princ-to-string c)"\") "))
)
((and(=(substr c 1 1) "O")
(numberp (setq n(read(substr c 2))))
(>= n 10.0)
)
(setq samcom(strcat "(sam_laycopy \"" (vl-princ-to-string n) "\") "))
)
((and(=(substr c 1 1) "M")
(numberp (setq n(read(substr c 2))))
(>= n 10.0)
)
(setq samcom(strcat "(sam_laymove \"" (vl-princ-to-string n) "\") "))
)
((and(=(substr c 1 1) "F")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_fillet " (vl-princ-to-string n) " nil) "))
)
((= c "FF")
(setq samcom "(sam_fillet 0.0 nil) ")
)
((and(=(substr c 1 1) "C")
(numberp (setq n(read (substr c 2))))
)
(setq samcom(strcat "(sam_fillet " (vl-princ-to-string n) " t) "))
)
((and(=(substr c 1 1) "N")
(numberp (setq n(read(substr c 2))))
)
(if(= n 0.0)
(setq samcom "(sam_co_lts nil nil) ")
(setq samcom(strcat "(sam_co_lts " (vl-princ-to-string (fix n)) " nil) "))
)
)
((and(=(substr c 1 1) "L")
(numberp (setq n (read (substr c 2))))
)
(setq samcom(strcat "(sam_co_lts nil " (vl-princ-to-string n) ") "))
)
((and(=(substr c 1 1) "X")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_xline " (vl-princ-to-string n) ") "))
)
((and(=(substr c 1 1) "D")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_dimbit " (vl-princ-to-string n) ") "))
)
((and(=(substr c 1 1) "H")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_ha_sc " (vl-princ-to-string n) ") "))
)
((and(=(substr c 1 1) "T")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_text_h " (vl-princ-to-string n) ") "))
)
((and(=(substr c 1 1) "J")
(numberp (setq n(read(substr c 2))))
)
(setq samcom(strcat "(sam_jion_select " (vl-princ-to-string n) ") "))
)
(t (setq n nil))
)
(if n(vl-catch-all-apply 'vla-SendCommand (list(vla-get-ActiveDocument (vlax-get-acad-object)) "SmartCommand ")))
(princ)
)
(defun c:SmartCommand( / *doc* )
(vla-startundomark (setq *doc*(vla-get-activedocument (vlax-get-acad-object))))
(setvar "cmdecho" 0)
(if(and (=(type samcom) 'str)(wcmatch samcom "(sam_*\) "))
(vl-catch-all-apply 'eval(list (read samcom))))
(setvar "cmdecho" 1)
(vla-endundomark *doc*)
(princ)
)
aaddff
发表于 2011-9-21 21:54:39
很久没来了,居然有这么好的程序,多年以前曾经想过,但没搞出来,今天看到了,不管好不好用,都很高兴,支持下
yanshengjiang
发表于 2011-9-21 23:38:21
这么好的程序不顶还说啥子呢
yanshengjiang
发表于 2011-9-21 23:39:07
这么好的程序不顶还说啥子呢