DuanJinHui 发表于 2022-7-5 22:23:46

为什么需要按下空白sp

你好伙计们
为什么需要按两次空格键?
 
(defun c:test (/ ss ang ANG1 ssl e lst)
(mapcar 'setvar '("cmdecho""blipmode")'(0 0))
(while (progn
          (prompt "\nPlease choose dimension to flip text <exit>: ")
          (setq ss (ssget '((0 . "DIMENSION")))))
   (setq ssl (sslength ss))
   (while (> ssl 0)
   (setq e   (ssname ss (setq ssl (1- ssl)))
         lst (entget e)
         ang (dxf 51 lst)
         ang1(if (and (>= pi ang)(> ang 0)) 0 pi))
   (entmod (subst (cons 51 ang1)(assoc 51 lst) lst))
   )
)
(mapcar 'setvar '("cmdecho""blipmode")'(1 1))
(princ)
)
(defun dxf (key dxfcod / )
(cdr (assoc key dxfcod))
)

Lee Mac 发表于 2022-7-5 22:41:52

请尝试以下操作:
(defun c:test ( / a e i s )
   (if (setq s (ssget '((0 . "DIMENSION"))))
       (repeat (setq i (sslength s))
         (setq e (entget (ssname s (setq i (1- i))))
               a (cdr (assoc 51 e))
         )
         (if (and (< (* pi 0.5) a) (<= a (* pi 1.5)))
               (entmod (subst (cons 51 (+ pi a)) (cons 51 a) e))
         )
       )
   )
   (princ)
)

DuanJinHui 发表于 2022-7-5 22:53:50

也许我误解了您试图用代码实现的目标-请尝试以下方法:
 
(defun c:测试(/a e i s)(if(setq s(ssget’((0.DIMENSION)))(重复(setq i(sslength s))(setq e(entget(ssname s(setq i(1-i)))a(cdr(assoc 51 e))a(cons 51(if(或(

Lee Mac 发表于 2022-7-5 23:06:35

 
谢谢李,现在好了!

DuanJinHui 发表于 2022-7-5 23:12:53

太好了-不客气!

Lee Mac 发表于 2022-7-5 23:33:44

页: [1]
查看完整版本: 为什么需要按下空白sp