乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: anupmadhu

[编程交流] Lisp将LWPOLYLINE转换为

[复制链接]

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:31:22 | 显示全部楼层
这是一个r2000版本,只有相关实体,足够小,不需要Dropbox。
PL_004-小。图纸
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 19:35:53 | 显示全部楼层
你好,anupmadhu。
请试试这个Lisp程序。它仅适用于WCS上的LWDOLYLINE。选择过滤器不会忽略凸出或开放多段线,但我不会尝试这些类型的多边形。
[code](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))(而(
回复

使用道具 举报

10

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 19:40:49 | 显示全部楼层
 
谢谢stefan工作得很好,你为我们节省了很多时间
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:42:20 | 显示全部楼层
有趣的是,使用express tools从您的绘图中制作这张图大约需要1分钟。
 
之字形的拉链
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 13:29 , Processed in 0.347978 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表