虽然我不太理解您描述的高程场景,但这应该基于拾取点向三维多边形添加顶点:
[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][color=#8b4513];;;ARG -> TestPt LinePt1 LinePt2 Fuzz[/color][color=#8b4513];;;RET T nil[/color][b][color=FUCHSIA]([/color][/b]defun is_pt_online [b][color=NAVY]([/color][/b]pt l1 l2 fz[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]numberp fz[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]equal [b][color=GREEN]([/color][/b]distance l1 l2[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]+ [b][color=BLUE]([/color][/b]distance l1 pt[b][color=BLUE])[/color][/b] [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] [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] [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] [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] [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] [b][color=NAVY]([/color][/b]= [b][color=MAROON]([/color][/b]sslength ss[b][color=MAROON])[/color][/b] 1[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq en [b][color=MAROON]([/color][/b]ssname ss 0[b][color=MAROON])[/color][/b] ed [b][color=MAROON]([/color][/b]entget en[b][color=MAROON])[/color][/b] vn [b][color=MAROON]([/color][/b]entnext en[b][color=MAROON])[/color][/b] vd [b][color=MAROON]([/color][/b]entget vn[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [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] [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] vn [b][color=GREEN]([/color][/b]entnext vn[b][color=GREEN])[/color][/b] 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] [b][color=FUCHSIA]([/color][/b]setq tl vl[b][color=FUCHSIA])[/color][/b] [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] [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] [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] [b][color=GREEN]([/color][/b]alert [color=#2f4f4f]"Existing Vertex - Cannot Add Point"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [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] [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] [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] [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] [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] [b][color=NAVY]([/color][/b]alert [color=#2f4f4f]"No Vertices Added"[/color][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]progn [b][color=MAROON]([/color][/b]entdel en[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake ed[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]foreach v fl [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] [b][color=RED]([/color][/b]assoc 8 vd[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cons 10 v[b][color=RED])[/color][/b] [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] [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][b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
-大卫