乐筑天下

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

[编程交流] 插入顶点

[复制链接]

40

主题

103

帖子

63

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
200
发表于 2022-7-6 10:16:56 | 显示全部楼层 |阅读模式
大家好,
 
有谁能帮我在不使用vlisp的情况下在二维多段线中插入顶点吗。
我需要这个用于intelli cad的例程。
 
谢谢
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
295
发表于 2022-7-6 10:28:05 | 显示全部楼层
我对AutoCAD 2006不是舒尔。。。但是双击多段线,就会得到一些菜单/选项。选择“插入”并选择新顶点的位置(如“最近”)。现在保留该命令并再次选择多段线(单击)。如果一切正常,你会看到新的顶点。
 
这是你需要的吗?
 
当做
马可。
回复

使用道具 举报

40

主题

103

帖子

63

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
200
发表于 2022-7-6 10:36:04 | 显示全部楼层
谢谢你的回复。
 
我想使用purly lisp函数而不是Visual lisp函数来实现这一点。
bcz Intelli cad不支持Visual lisp。
 
谢谢
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:43:31 | 显示全部楼层
可以这样做,但如果添加的顶点位于柱脚线的圆弧(凸起)段中,也可能是一个相当复杂的过程。此外,宽度不同的柱脚也是一个挑战。您需要满足哪些参数-大卫
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 10:49:49 | 显示全部楼层
多段线是否总是LWPolies?或者你也会有更老的2d政策?使用2dPolies,您必须从头开始重新创建多边形,因为多段线实际上由多段线实体组成,后面是顶点实体,最后是Sequend实体。所以你必须删除所有内容,然后重新创建。请参阅开发人员关于创建复杂DXF实体的帮助。
 
对于LWPolyline,每个顶点的顶点都是DXF代码10、40、41和42的简单组。因此,您需要将新顶点的代码插入DXF列表中的正确位置-“最简单”的方法是遍历该位置之前的每个项目(将它们添加到新的临时列表),然后添加新项目,最后继续添加旧列表中的其余项目。然后更改代码90以更新顶点总数-使用subst。最后使用entmod将实体更新到调整后的DXF数据列表。
 
顺便说一句,你在用哪个IntelliCAD?我知道其中一些函数也可以使用vlax函数(例如BricsCAD)
回复

使用道具 举报

40

主题

103

帖子

63

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
200
发表于 2022-7-6 10:58:23 | 显示全部楼层
谢谢大家,
 
最后,我成功地完成了我写的以下内容。
请告知任何改进。
 
  1. (defun c:ins(/ obj obj1 po str)
  2. (setq obj (entsel "\n Select entity to insert vertex"))
  3. (setq obj1 (car obj))
  4. (setq po (cadr obj))
  5. (if (/= (cdr (assoc 0 (entget (car obj)))) "LWPOLYLINE")
  6. (progn
  7. (alert "The selected line is not polyline")
  8. (setq str (getstring "\n Do u want to continue: <y / n>"))
  9. (cond
  10. ((= str "y")
  11. (progn
  12. (command "pedit" obj "")
  13. (setq obj1 (entlast))
  14. ));cond
  15. );cond
  16. ));if
  17. (if (= (cdr (assoc 0 (entget obj1))) "LWPOLYLINE")
  18. (progn
  19. (command "break" obj1 po po)
  20. (command "pedit" obj1 "j" (entlast) "" "")
  21. ))
  22. )
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 11:06:15 | 显示全部楼层
这可能是个好方法。如果设置了对象捕捉,请小心在选定点上打断。您可以在将每个点传递给break命令之前添加“_None”。我对直接使用选定点有点怀疑。它几乎不会直接位于多段线的顶部。但要在多段线的弯曲部分上找到这样的点会非常复杂。这就是我想要vlax曲线函数的地方,但你说它们不可用
 
这就是你想停止日常生活的地方吗?还是要将新插入的顶点移动到新位置?
回复

使用道具 举报

40

主题

103

帖子

63

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
200
发表于 2022-7-6 11:10:45 | 显示全部楼层
是的,它符合我的要求。
 
谢谢
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 11:19:57 | 显示全部楼层
看这里,将顶点添加到多段线
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 21:11 , Processed in 1.397211 second(s), 70 queries .

© 2020-2025 乐筑天下

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