乐筑天下

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

[编程交流] 向三维多段线添加新顶点

[复制链接]

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-5 23:02:01 | 显示全部楼层 |阅读模式
你好
可以在三维多段线上的任何位置添加新顶点的例程的任何帮助与拾取点的高程相同,它可以作为autocad命令使用,但如果要添加很多点,则它很长并且需要很多时间
谢谢
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 23:46:36 | 显示全部楼层
虽然我不太理解您描述的高程场景,但这应该基于拾取点向三维多边形添加顶点:
 
 
 
  1. [b][color=BLACK]([/color][/b]defun c:add3dv [b][color=FUCHSIA]([/color][/b]/ p ss en ed vn vd vl tl fl[b][color=FUCHSIA])[/color][/b]
  2. [color=#8b4513];;;ARG -> TestPt LinePt1 LinePt2 Fuzz[/color]
  3. [color=#8b4513];;;RET T nil[/color]
  4. [b][color=FUCHSIA]([/color][/b]defun is_pt_online [b][color=NAVY]([/color][/b]pt l1 l2 fz[b][color=NAVY])[/color][/b]
  5. [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]numberp fz[b][color=MAROON])[/color][/b]
  6.       [b][color=MAROON]([/color][/b]equal [b][color=GREEN]([/color][/b]distance l1 l2[b][color=GREEN])[/color][/b]
  7.              [b][color=GREEN]([/color][/b]+ [b][color=BLUE]([/color][/b]distance l1 pt[b][color=BLUE])[/color][/b]
  8.                 [b][color=BLUE]([/color][/b]distance l2 pt[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] fz[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"OSMODE"[/color] [b][color=NAVY]([/color][/b]logior [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"OSMODE"[/color][b][color=MAROON])[/color][/b] 512[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq p [b][color=MAROON]([/color][/b]getpoint [color=#2f4f4f]"\nSelect Point On a 3DPOLY:  "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  11.       [b][color=NAVY]([/color][/b]setq p [b][color=MAROON]([/color][/b]trans p 1 0[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  12.       [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget p '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"POLYLINE"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]-4 . [color=#2f4f4f]"&"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]70 . 8[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  13.       [b][color=NAVY]([/color][/b]= [b][color=MAROON]([/color][/b]sslength ss[b][color=MAROON])[/color][/b] 1[b][color=NAVY])[/color][/b]
  14.       [b][color=NAVY]([/color][/b]setq en [b][color=MAROON]([/color][/b]ssname ss 0[b][color=MAROON])[/color][/b]
  15.             ed [b][color=MAROON]([/color][/b]entget en[b][color=MAROON])[/color][/b]
  16.             vn [b][color=MAROON]([/color][/b]entnext en[b][color=MAROON])[/color][/b]
  17.             vd [b][color=MAROON]([/color][/b]entget vn[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  18.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]= [color=#2f4f4f]"VERTEX"[/color] [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 0 vd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  19.              [b][color=MAROON]([/color][/b]setq vl [b][color=GREEN]([/color][/b]cons [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 10 vd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] vl[b][color=GREEN])[/color][/b]
  20.                    vn [b][color=GREEN]([/color][/b]entnext vn[b][color=GREEN])[/color][/b]
  21.                    vd [b][color=GREEN]([/color][/b]entget vn[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  22. [b][color=FUCHSIA]([/color][/b]setq tl vl[b][color=FUCHSIA])[/color][/b]
  23. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]> [b][color=MAROON]([/color][/b]length vl[b][color=MAROON])[/color][/b] 1[b][color=NAVY])[/color][/b]
  24.         [b][color=NAVY]([/color][/b]setq fl [b][color=MAROON]([/color][/b]cons [b][color=GREEN]([/color][/b]car vl[b][color=GREEN])[/color][/b] fl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  25.         [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]equal p [b][color=BLUE]([/color][/b]car vl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  26.                [b][color=GREEN]([/color][/b]alert [color=#2f4f4f]"Existing Vertex - Cannot Add Point"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  27.               [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]is_pt_online p [b][color=BLUE]([/color][/b]car vl[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cadr vl[b][color=BLUE])[/color][/b] 1e-8[b][color=GREEN])[/color][/b]
  28.                [b][color=GREEN]([/color][/b]setq fl [b][color=BLUE]([/color][/b]cons p fl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  29.         [b][color=NAVY]([/color][/b]setq vl [b][color=MAROON]([/color][/b]cdr vl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  30. [b][color=FUCHSIA]([/color][/b]setq fl [b][color=NAVY]([/color][/b]cons [b][color=MAROON]([/color][/b]car vl[b][color=MAROON])[/color][/b] fl[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  31. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [b][color=MAROON]([/color][/b]length fl[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]length tl[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  32.      [b][color=NAVY]([/color][/b]alert [color=#2f4f4f]"No Vertices Added"[/color][b][color=NAVY])[/color][/b]
  33.      [b][color=NAVY]([/color][/b]progn
  34.        [b][color=MAROON]([/color][/b]entdel en[b][color=MAROON])[/color][/b]
  35.        [b][color=MAROON]([/color][/b]entmake ed[b][color=MAROON])[/color][/b]
  36.        [b][color=MAROON]([/color][/b]foreach v fl
  37.          [b][color=GREEN]([/color][/b]entmake [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=RED])[/color][/b]
  38.                         [b][color=RED]([/color][/b]assoc 8 vd[b][color=RED])[/color][/b]
  39.                         [b][color=RED]([/color][/b]cons 10 v[b][color=RED])[/color][/b]
  40.                         [b][color=RED]([/color][/b]cons 70 32[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  41.         [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"SEQEND"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 vd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  42. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
-大卫
回复

使用道具 举报

63

主题

242

帖子

181

银币

后起之秀

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

铜币
319
发表于 2022-7-6 00:30:22 | 显示全部楼层
谢谢David先生的回复,没关系,但如果我想重复添加点,我添加了(在第10行时),它关闭了3dpoly的开始和结束,这是什么原因
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:23 , Processed in 0.560217 second(s), 58 queries .

© 2020-2025 乐筑天下

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