为什么批量wipeout后会出现这种效果
(defun c:Jx ()(setvar "CMDECHO" 0)
(setq i 0)
(if (setq ss (ssget '((0 . "LWPOLYLINE"))))
(repeat (sslength ss)
(setq ent (ssname ss i)
ent-lst (entget ent)
p1 (cadr (assoc 10 ent-lst))
p2 (caddr (assoc 10 ent-lst))
)
(setq pt1 (list p1 p2)
pt2 (list (+ p1 20.8333) p2)
pt3 (list (+ p1 20.8333) (- p2 12.5))
pt4 (list p1 (- p2 12.5))
)
(command "_.wipeout" pt1 pt2 pt3 pt4 "")
(setq i (1+ i))
);end repeat
);end if
(command "_.ERASE" ss "")
(setvar "CMDECHO" 1)
(princ)
)
感觉被对象捕捉过去一样 初步结论,算法问题。 试试这个(defun c:Jx ()
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(setq i 0)
(if (setq ss (ssget '((0 . "LWPOLYLINE"))))
(repeat (sslength ss)
(setq ent (ssname ss i)
ent-lst (entget ent) )
(setq ptlist (vl-remove-if '(lambda (x) (/= 10 (car x))) ent-lst))
(setq ptlist (mapcar 'cdr ptlist))
(setq ptlist (vl-sort ptlist (function
(lambda (e1 e2)
(< (+ (car e1) (cadr e1)) (+ (car e2) (cadr e2))) ))))
(setq pt1(nth 0 ptlist)
pt2(nth 1 ptlist)
pt3(nth 3 ptlist)
pt4(nth 2 ptlist) )
(command "_.wipeout" pt1 pt2 pt3 pt4 "")
(setq i (1+ i))
);end repeat
);end if
(command "_.ERASE" ss "")
(setvar "osmode" 4133)
(setvar "CMDECHO" 1)
(princ)
) 1\你取的10的组吗只是一个顶点,不能确认是哪个顶点!你应该把顶点都取出来,然后按顺时针或者逆时针排序!
楚留香 发表于 2013-12-14 21:34 static/image/common/back.gif
1\你取的10的组吗只是一个顶点,不能确认是哪个顶点!你应该把顶点都取出来,然后按顺时针或者逆时针排序! ...
但是wiprout只需要第三个顶点,再说矩形的4个顶点都是10组码怎么区分嘛,请指教 1、kwok程序中已经将组码10的顶点提取出来了。
2、实际上提取的顶点是有序的,不用排序。
3、wipeout可以直接转换PLINE。
直接应用顶点:(defun c:Jx ()
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(setq i 0)
(if (setq ss (ssget '((0 . "LWPOLYLINE"))))
(repeat (sslength ss)
(setq ent (entget (ssname ss i)))
(command "_.wipeout")
(foreach x ent (if (= (car x) 10) (command (cdr x))))
(command "")
(setq i (1+ i))
);end repeat
);end if
(command "_.ERASE" ss "")
(setvar "osmode" 4133)
(setvar "CMDECHO" 1)
(princ)
)
直接转换:(defun c:Jx ()
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(setq i -1)
(if (setq ss (ssget '((0 . "LWPOLYLINE"))))
(repeat (sslength ss)
(setq en (ssname ss (setq i (1+ i))))
(command "_.wipeout" "P" en "Y")
)
)
(setvar "osmode" 4133)
(setvar "CMDECHO" 1)
(princ)
)
ZZXXQQ 发表于 2013-12-15 09:15 static/image/common/back.gif
1、kwok程序中已经将组码10的顶点提取出来了。
2、实际上提取的顶点是有序的,不用排序。
3、wipeout可以 ...
受教了,看来是我考虑的复杂了,随便问一下,区域覆盖后文字辈盖住了,如何让文字上浮一层,仔细找了一下图元上没找到影响的参数。只能用笨方法集体移动后再还原 偏爱云~小吴 发表于 2013-12-16 12:23 static/image/common/back.gif
受教了,看来是我考虑的复杂了,随便问一下,区域覆盖后文字辈盖住了,如何让文字上浮一层,仔细找了一下 ...
可以用DRAWORDER命令让它前置。。。 llsheng_73 发表于 2013-12-22 00:54 static/image/common/back.gif
可以用DRAWORDER命令让它前置。。。
是的我也这样想的,我再想是借用之前的ssget还是重新选择好一点,以什么样的一个形式嵌进去
页:
[1]