Jump to content

Tesselate an ARC?


Recommended Posts

What i need is an automated way to select an arc, and turn it to a multiple-vertices polyline.

 

Meaning, I want to turn it to a polyline, but not just any type of polyline, but a complex polyline that consists of multiple vertices along the arc.

 

One way i thought of, but needs manual input is this:

 

First turn the arc to a polyline with the pedit command. Then use the break at point command and select the middle of the polyline. Then repeat each time selecting the middle of each of the parts of the polyline that are created, and repeat this procedure until you get a satisfactory amount of vertices.

 

But i'm wondering if there is a one-click solution for this type of action.

Link to comment
Share on other sites

AFAIK, not a built in ACAD command.

 

But it can be done:

 

[b][color=BLACK]([/color][/b]defun c:arc2pl [b][color=FUCHSIA]([/color][/b]/ ss en ed ce ra sa ea ia seg in[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and
       [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect 1 ARC To Convert..."[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget '[b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]0 . [color=#2f4f4f]"ARC"[/color][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]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b]
             ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
             ce [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ra [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 40 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             sa [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 50 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ea [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 51 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ia [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]> sa ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]+ [b][color=RED]([/color][/b]- [b][color=PURPLE]([/color][/b]* 2 pi[b][color=PURPLE])[/color][/b] sa[b][color=RED])[/color][/b] ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]- ea sa[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]progn
       [b][color=MAROON]([/color][/b]initget 7[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq seg [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nNumber Of Segments In The Pline:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq in [b][color=GREEN]([/color][/b]/ ia [b][color=BLUE]([/color][/b]* seg 2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.PLINE"[/color] [b][color=GREEN]([/color][/b]polar ce sa ra[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]repeat seg
         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_arc"[/color] [color=#2f4f4f]"_s"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b]
                              [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
         [b][color=GREEN]([/color][/b]setq sa [b][color=BLUE]([/color][/b]+ sa in in[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]""[/color][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]

 

How do I use an AutoLISP routine

 

-David

Link to comment
Share on other sites

Thank You for your help, but no matter how many segments i type it always creates a 3 vertice polyline. Any idea what could be going wrong? :(

Link to comment
Share on other sites

It works here on R12 and A2K. Try turning off osnaps. -David

 

[b][color=BLACK]([/color][/b]defun c:arc2pl [b][color=FUCHSIA]([/color][/b]/ ss en ed ce ra sa ea ia seg in[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and
       [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect 1 ARC To Convert..."[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget '[b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]0 . [color=#2f4f4f]"ARC"[/color][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]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b]
             ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
             ce [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ra [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 40 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             sa [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 50 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ea [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 51 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ia [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]> sa ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]+ [b][color=RED]([/color][/b]- [b][color=PURPLE]([/color][/b]* 2 pi[b][color=PURPLE])[/color][/b] sa[b][color=RED])[/color][/b] ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]- ea sa[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]progn
       [b][color=MAROON]([/color][/b]initget 7[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq seg [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nNumber Of Segments In The Pline:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq in [b][color=GREEN]([/color][/b]/ ia [b][color=BLUE]([/color][/b]* seg 2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.PLINE"[/color] [color=#2f4f4f]"_non"[/color] [b][color=GREEN]([/color][/b]polar ce sa ra[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]repeat seg
         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_arc"[/color] [color=#2f4f4f]"_s"[/color] [color=#2f4f4f]"_non"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b]
                              [color=#2f4f4f]"_non"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
         [b][color=GREEN]([/color][/b]setq sa [b][color=BLUE]([/color][/b]+ sa in in[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]""[/color][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]

Link to comment
Share on other sites

wow, that was the problem. I really dont know why having osnap turned on would cause a problem, but it does and switching it off makes the routine work.

 

BTW did you add any new lines on your second post, cause i just re-run the first script.

 

Thank You very much for your help here, i appreciate it. :thumbsup

Link to comment
Share on other sites

The second post added "_non" snap mode to point inputs. That way the routine disregards the current setting.

 

Here is a routine that will match the ARCs properties as well:

 

[b][color=BLACK]([/color][/b]defun c:arc2pl [b][color=FUCHSIA]([/color][/b]/ ss en ed ce ra sa ea ia seg in clr[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and
       [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect 1 ARC To Convert..."[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget '[b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]0 . [color=#2f4f4f]"ARC"[/color][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]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b]
             ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
             ce [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ra [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 40 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             sa [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 50 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ea [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 51 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ia [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]> sa ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]+ [b][color=RED]([/color][/b]- [b][color=PURPLE]([/color][/b]* 2 pi[b][color=PURPLE])[/color][/b] sa[b][color=RED])[/color][/b] ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]- ea sa[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]progn
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CLAYER"[/color] [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"ELEVATION"[/color] [b][color=GREEN]([/color][/b]caddr ce[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CELTYPE"[/color]   [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc  6 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc  6 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"BYLAYER"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"THICKNESS"[/color] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 39 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 39 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 0.0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
[color=#8b4513]        [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CELTSCALE"[/color] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 48 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 48 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 1.0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][/color]
       [b][color=MAROON]([/color][/b]setq clr [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 62 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]cond [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]not clr[b][color=BLUE])[/color][/b]   [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [color=#2f4f4f]"BLYLAYER"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]zerop clr[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [color=#2f4f4f]"BYBLOCK"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             [b][color=GREEN]([/color][/b]T           [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [b][color=RED]([/color][/b]itoa clr[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]initget 7[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq seg [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nNumber Of Segments In The Pline:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq in [b][color=GREEN]([/color][/b]/ ia [b][color=BLUE]([/color][/b]* seg 2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.PLINE"[/color] [color=#2f4f4f]"_non"[/color] [b][color=GREEN]([/color][/b]polar ce sa ra[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]repeat seg
         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_arc"[/color] [color=#2f4f4f]"_s"[/color] [color=#2f4f4f]"_non"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b]
                              [color=#2f4f4f]"_non"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
         [b][color=GREEN]([/color][/b]setq sa [b][color=BLUE]([/color][/b]+ sa in in[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]""[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]assoc 210 ed[b][color=GREEN])[/color][/b]
           [b][color=GREEN]([/color][/b]entmod [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]assoc 210 ed[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b]210 0 0 1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]entget [b][color=PURPLE]([/color][/b]entlast[b][color=PURPLE])[/color][/b][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]entdel en[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]redraw[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]

 

I does not reset the properties to their settings so watch your step. Good Luck! -David

Link to comment
Share on other sites

This last scrip doesnt work. Running ACAD 2010.

Select objects:

; error: AutoCAD variable setting rejected: "CECOLOR" "BLYLAYER"

 

And more importangly i found fault on the initial script that realy matters.The segment this routine creates are curvy. IF you explode you can see that each segment comprises of smaller arcs.

 

What I really need is to break it down to lines. I need to create a linear representations of an arc, which is curvy (non-linear).

Link to comment
Share on other sites

I read your original post as you wanted arced segments. No biggie. You'd think that I could at least spell BYLAYER

 

For straight segments:

[b][color=BLACK]([/color][/b]defun c:arc2pls [b][color=FUCHSIA]([/color][/b]/ ss en ed ce ra sa ea ia seg in clr[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and
       [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect 1 ARC To Convert..."[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget '[b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]0 . [color=#2f4f4f]"ARC"[/color][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]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b]
             ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
             ce [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ra [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 40 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             sa [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 50 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ea [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 51 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             ia [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]> sa ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]+ [b][color=RED]([/color][/b]- [b][color=PURPLE]([/color][/b]* 2 pi[b][color=PURPLE])[/color][/b] sa[b][color=RED])[/color][/b] ea[b][color=BLUE])[/color][/b]
                    [b][color=BLUE]([/color][/b]- ea sa[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]progn
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CLAYER"[/color] [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"ELEVATION"[/color] [b][color=GREEN]([/color][/b]caddr ce[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CELTYPE"[/color]   [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc  6 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc  6 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"BYLAYER"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"THICKNESS"[/color] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 39 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 39 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 0.0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setvar [color=#2f4f4f]"CELTSCALE"[/color] [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 48 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 48 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 1.0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq clr [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 62 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]cond [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]not clr[b][color=BLUE])[/color][/b]   [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [color=#2f4f4f]"BYLAYER"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             [b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]zerop clr[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [color=#2f4f4f]"BYBLOCK"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
             [b][color=GREEN]([/color][/b]T           [b][color=BLUE]([/color][/b]setvar [color=#2f4f4f]"CECOLOR"[/color] [b][color=RED]([/color][/b]itoa clr[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]initget 7[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq seg [b][color=GREEN]([/color][/b]getint [color=#2f4f4f]"\nNumber Of Segments In The Pline:   "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]setq in [b][color=GREEN]([/color][/b]/ ia [b][color=BLUE]([/color][/b]1+ seg[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.PLINE"[/color] [color=#2f4f4f]"_non"[/color] [b][color=GREEN]([/color][/b]polar ce sa ra[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]repeat seg
         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_non"[/color] [b][color=BLUE]([/color][/b]polar ce [b][color=RED]([/color][/b]+ sa in[b][color=RED])[/color][/b] ra[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
         [b][color=GREEN]([/color][/b]setq sa [b][color=BLUE]([/color][/b]+ sa in[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]command [color=#2f4f4f]""[/color][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]assoc 210 ed[b][color=GREEN])[/color][/b]
           [b][color=GREEN]([/color][/b]entmod [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]assoc 210 ed[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b]210 0 0 1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]entget [b][color=PURPLE]([/color][/b]entlast[b][color=PURPLE])[/color][/b][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]entdel en[b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]redraw[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

a quickie with a different approach (it's raining)

keeps getting an 'Invalid point' (I'm not sure why) but it worked the few times I tested...

;;;Creates breaks along curve w/ user entered divisions  LPS 2010-04
(defun c:test (/ oldecho oldsnap ent div arclen brkpt)
(vl-load-com)
(setq oldecho (getvar "cmdecho")
     oldsnap (getvar "osmode")
     )
(setvar "cmdecho" 0)
(setvar "osmode" 0)  
(setq ent (car (entsel "\nPick curve: "))
     div (getint "\nEnter number of segments: ")
     arclen (/ (vlax-curve-getDistAtPoint ent (vlax-curve-getEndPoint ent)) div)
     )
(repeat (1- div)
  (setq brkpt (vlax-curve-getPointatDist ent arclen))
  (vl-cmdf "break" ent "f" brkpt "@")
  (setq ent (entlast))
)
 (setvar "cmdecho" oldecho)
 (setvar "osmode" oldsnap)
 (princ)
 )

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...