halam 发表于 2022-7-5 17:03:52

新的块编辑选项(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)
)


BIGAL 发表于 2022-7-5 17:26:18

你可以返回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!"))

Roy_043 发表于 2022-7-5 17:59:09

文本编辑模式

halam 发表于 2022-7-5 18:04:14

谢谢你,罗伊。。这似乎合乎逻辑。。
页: [1]
查看完整版本: 新的块编辑选项(AutoCAD