新的块编辑选项(AutoCAD
大家好,聪明人的快速问题。。
我注意到AutoCAD 2017在我使用的块编辑功能中有一个新功能。现在默认为“多模式”。这是一个可以在lisp中“强制”设置为“single”的setvar吗?我使用oevrall lisp,可以编辑所有内容,至少是文本多行文字、attdef和dims。
2016:
命令:TEXTEDIT
选择注释对象:
2017:
命令:TEXTEDIT
当前设置:编辑模式=单一
选择注释对象或[模式]:m
输入文本编辑模式选项[单个/多个]:
(默认值为多)
一旦设置为single,我的lisp再次工作。
(defun c:ed (/ SS CNT NUM SENT ANS oldsnp ent els tx1 sta )
; (TEXTSCR) (graphscr)
(command "undo" "group")
(setq oldsnp (getvar "snapmode"))
(setvar "snapmode" 0)
(prompt "\nMulti-Edit")
(if (>= (getvar "acadver") "13")
(setq SS (ssget '((-4 . "<or")
(0 . "RTEXT")
(0 . "ATTDEF")
(0 . "DIMENSION")
(0 . "MTEXT")
(0 . "TEXT")
(0 . "MULTILEADER")
(0 . "TOLERANCE")
(-4 . "<and")
(0 . "INSERT")
(66 . 1)
(-4 . "and>")
(-4 . "or>")
)
)
)
(setq SS (ssget '((-4 . "<or")
(0 . "ATTDEF")
(0 . "TEXT")
(-4 . "<and")
(0 . "INSERT")
(66 . 1)
(-4 . "and>")
(-4 . "or>")
)
)
)
)
(if SS
(progn
(setq NUM (sslength SS)
CNT 0
)
(while (< CNT NUM)
(princ (strcat "\r Edit : "
(rtos (1+ CNT) 2 0)
" of "
(rtos NUM 2 0)
": "
)
)
(setq SENT (ssname SS CNT))
(setq ANS (cdr (assoc 0 (entget SENT))))
(cond
((or (eq ANS "ATTDEF")
(eq ANS "TEXT")
(eq ANS "TOLERANCE")
(eq ANS "MULTILEADER")
)
(command "textedit" SENT \)
)
((or (eq ANS "MTEXT")
)
(command "mtedit" SENT \)
)
((or (eq ANS "rtext")
)
(command "rtedit" SENT \ pause)
)
((or (eq ANS "DIMENSION")
)
(command "textedit" SENT \) ;**** HERE IT SHOULD BE IN SINGLE VAR ***
)
;;;;;;;;;; fundtion for dte - not available
((eq ANS "INSERT")
; (command "DDatte" SENT \)
(sssetfirst nil (ssadd sent))
(command "ddatte") ; ddatte2 doet het even niet...
)
((eq ANS "RTEXT") (c:RTEDIT))
)
(entupd SENT)
(setq CNT (1+ CNT))
)
(princ "Done... ")
)
(princ "Nothing selected. ")
)
(setvar "snapmode" oldsnp)
(command "undo" "end")
(princ)
)
你可以返回is it 13 14 15 16 17等,这样就可以修补你的程序进行检查,有点像文本ht set或is it zero,有两个答案。
(setq vrsn (vlax-product-key))
(cond
((vl-string-search "R17.2" vrsn) (setq appstr "6.0")) ;09
((vl-string-search "R18.0" vrsn) (setq appstr "7.0")) ;10
((vl-string-search "R18.1" vrsn) (setq appstr "8.0")) ;11
((vl-string-search "R18.2" vrsn) (setq appstr "9.0")) ;12 ?
((vl-string-search "R19.0" vrsn) (setq appstr "10.0")) ;13
((vl-string-search "R19.1" vrsn)(setq appstr "10.3"));;2014
((vl-string-search "R20.0" vrsn)(setq appstr "10.4"));;2015
((vl-string-search "R20.1" vrsn)(setq appstr "10.5"));;2016
((vl-string-search "R21.0" vrsn)(setq appstr "11.0"));;2017
((alert "This version of C3D not supported!"))
文本编辑模式 谢谢你,罗伊。。这似乎合乎逻辑。。
页:
[1]