eldon 发表于 2022-7-5 19:31:22

这是一个r2000版本,只有相关实体,足够小,不需要Dropbox。
PL_004-小。图纸

Stefan BMR 发表于 2022-7-5 19:35:53

你好,anupmadhu。
请试试这个Lisp程序。它仅适用于WCS上的LWDOLYLINE。选择过滤器不会忽略凸出或开放多段线,但我不会尝试这些类型的多边形。
(defun c:测试(/*错误*acDoc l2p 2d顺时针-p a b c d e i p q r ss w)(vl load com)(或*zigdist*(setq*zigdist*10.0))(setq acDoc(vla get activedocument(vlax get acad object))(vla startundomark acDoc)(defun*错误*(msg)(和msg(非(wcmatch(strcase msg)”*取消*,*退出*,*退出*)(princ(strcat“\n错误:“msg))(vla endundomark acDoc)(princ))(defun l2p(l)(如果l(cons(list(car l)(cadr l))(l2p(cddr l)))(defun 2d(p)(list(car p)(cadr p)))(defun顺时针-p(e/p1 p2 p a b f1 f2)(vla getboundingbox e‘p1’p2)(setq p(vlax curve getparamatpoint e(vlax curve getclosestpointtoprojection e)(mapcar’-(vlax safearray->list p1)’(1 1 0))'(1 0 0)))a(vlax curve getstartparam e)b(vlax curve getendparam e)f1(vlax curve getfirstderiv e(+a(rem(+p 0.1)(-b a)))f2(vlax curve getfirstderiv e(+a(rem(+p 0.1)(-b a))(>(*(car f1)(cadr f2))(*(car f2)(cadr f1)))(if(和(setq ss(ssget:L“((0.“LWDOLYLINE”)(210 0.0 0.01.0)(38.0.0))(或(和(setq d(strcat“\Specify zig zag distance:))(setq d(abs d))(setq d*zigdist*))(重复(setq i(sslength ss))(setq e(vlax ename->vla object(ssname ss(setq i(1-i)))p(l2p(vlax get e'坐标))a(/d2.0)b(vla get length e)w(*0.1 d)r nil q(顺时针-p e))(而(

anupmadhu 发表于 2022-7-5 19:40:49

 
谢谢stefan工作得很好,你为我们节省了很多时间

BIGAL 发表于 2022-7-5 19:42:20

有趣的是,使用express tools从您的绘图中制作这张图大约需要1分钟。
 
之字形的拉链
页: 1 [2]
查看完整版本: Lisp将LWPOLYLINE转换为