有没有函数能代替系统函数ssdel,ssdel有时无法使用
(DEFUN C:HHH ( )(vl-load-com)
(setq ss (ssadd))
(setvar "osmode" 0)
(prompt "\n<<框选文字在文字中心画圈(图层无限制)>>")
(setq ss (ssget '((0 . "TEXT"))))
;-----------------ssdel无法使用----------------------------------
(setq ssn0 (ssname ss 0))
(ssdel ssn0 ss) ;从选择集ss中删除对象ssn0得到新选择集ss(CAD2016无法使用这个函数)
;-----------------ssdel无法使用----------------------------------
(command "undo" "be")
(setq i 0)
(repeat (sslength ss)
(setq ssi (ssname ss i))
(setq wenzi (cdr (assoc 1 (entget ssi))))
(setq ceni (txtmpt ssi)) ;调用函数求文字中心
(command "circle" ceni 400)
(setq i (+ 1 i))
)
(command "undo" "e")
(setvar "osmode" 16383)
)
(defun txtmpt (en / ent box ls pt ang)
(setq ent (entget en)
box (textbox ent)
ang (cdr (assoc 50 ent))
ls(mapcar '(lambda (a b) (* 0.5 (+ a b)))
(car box)
(cadr box)
)
pt(cdr (assoc 10 ent))
)
(polar pt (+ ang (angle '(0 0) ls)) (distance '(0 0) ls))
)
(princ)
函数没问题代码也没问题 是你操作不对或者CAD有问题ssdel也不会有时无法使用 除非被重定义了 飞雪神光 发表于 2023-4-14 16:22
除非被重定义了
何为重定义? 包哥 发表于 2023-4-14 16:51
何为重定义?
这就叫重新定义 多了解一下 lispssdel 完全用不上 你这个功能同样的功能 就会用更方便的方式实现 重定义两个人名字相同,不知道谁是谁.
页:
[1]