tm20038175 发表于 2011-6-25 12:34:04

删除FEM图层中除填充和边数为2,3,4的图形,程序有错误

很奇怪为什么会有错误?

(defun c:ft ()
      (setq $orr *error*)
    (setq *error* #err)   ;当程序出错时就会执行#err函数

(setq oldmode (getvar "osmode") p1mode t)
(setvar "osmode" 0)
(setvar "CMDECHO" 0)
      (setq ss (ssget'((8 . "fem"))))
      (princ "\n")
      (redraw)

(setq n1 (sslength ss))   
(repeatn1
    (setq ty(ssname ss n2))
(setq data (entget ty))
   (setq d(cdr (assoc 0 data)))
(setq dd1   (wcmatch d "*HATCH*"))
      (setq dd2(wcmatch d "*POLYLINE"))(princ "\ndd2:") (princ dd2)
    (if (and (/= dd2 T)(= dd1 T))
      (ssdel ty ss))

    (if (and (/= dd1 T)(= dd2 T))
      (progn
    (setq d2 (cdr (assoc 90 data)))      
    (if (= d2 4)(ssdel ty ss)   )
    (if (= d2 3)(ssdel ty ss)   )
    (if (= d2 2)   (ssdel ty ss)   )
      ))
   (setq n2 (+ n2 1))
   )
(command "Chprop" ss "" "LA" "0" "")
      (setvar "osmode" oldmode)
      (setq *error* $orr)
(princ)
)



(defun #err (s)

    (setvar "osmode" oldmode)
(setq *error* $orr)

)

tm20038175 发表于 2011-6-25 13:31:12

(ssdel ty ss)   好像是这个有问题

Andyhon 发表于 2011-6-25 14:06:14

未测 ,一个猜想 ....

entdel Function
Deletes objects (entities) or restores previously deleted objects
(entdel ename)

ssdel /= entdel
页: [1]
查看完整版本: 删除FEM图层中除填充和边数为2,3,4的图形,程序有错误