Jump to content

add new vertices to 3d polyline


motee-z

Recommended Posts

hello

any help for a routine that can add new vertices at any place on 3d polyline same elevation of a picked point it is available as autocad command but it is long and need much time if i have a lot of points to be add

thanks

Link to comment
Share on other sites

While I don't quite understand the elevation scenario that you are describing, this should add a vertex to a 3DPOLY based on a pick point:

 

 

 

[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]


 

 

-David

Link to comment
Share on other sites

thank you Mr David for reply that,s okay but if i want to repeat adding points i add (while at the line number 10 )it closed start and end of the 3dpoly what the reason of that

(while (and (setq p (getpoint "\nSelect Point On a 3DPOLY: "))
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...