样品
- (defun c:test ()
- (vl-load-com)
- (if (not BArea)(setq BArea 100.00))
- (setq BArea (cond
- ((getreal
- (strcat "\nEnter Base Area: <"
- (rtos BArea 2 2)
- ">: ")))
- (BArea)))
- (setq LayerBase (getstring "\nEnter Layer Name: "))
- (setq objs (ssget '((0 . "LWPOLYLINE,CIRCLE,HATCH"))))
- (repeat (sslength objs)
- (if
- (> (vla-get-area (vlax-ename->vla-object (setq ent (ssname objs 0)))) BArea)
- (entmod (subst (cons 8 LayerBase) (assoc 8 (setq ent (entget ent))) ent))
- )
- (ssdel (ssname objs 0) objs)
- )
- )
我看到的这种方法的问题是,如果您想一次根据它们的区域来分割它们,那么每次运行代码时都需要传递两个值作为参数。最大值和最小值(模糊)可能使用列表,也要注意序列。
否则,先从小区域开始,然后再从大区域开始。 |