包哥 发表于 2023-4-14 16:17:01

有没有函数能代替系统函数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)



飞雪神光 发表于 2023-4-14 16:21:38

函数没问题代码也没问题 是你操作不对或者CAD有问题ssdel也不会有时无法使用

飞雪神光 发表于 2023-4-14 16:22:41

除非被重定义了

包哥 发表于 2023-4-14 16:51:37

飞雪神光 发表于 2023-4-14 16:22
除非被重定义了

何为重定义?

飞雪神光 发表于 2023-4-14 21:16:40

包哥 发表于 2023-4-14 16:51
何为重定义?

这就叫重新定义

kkq0305 发表于 2023-4-14 21:49:14

多了解一下 lispssdel 完全用不上 你这个功能同样的功能 就会用更方便的方式实现

434939575 发表于 2023-4-16 10:39:28

重定义两个人名字相同,不知道谁是谁.
页: [1]
查看完整版本: 有没有函数能代替系统函数ssdel,ssdel有时无法使用