Jump to content

How to reduce a group of line lengths uniformly?


Recommended Posts

Posted

Do the polylines have more than two vertice?

  • Replies 35
  • Created
  • Last Reply

Top Posters In This Topic

  • DWG Destroyer

    9

  • ReMark

    8

  • ronjonp

    5

  • Lee Mac

    3

Posted

Looks like you fell for the trap.:lol:

 

Don't give us what we want...give us what we need!:lol:

Posted

Funny how that happens...the code will start with a few lines and end with hundreds :lol:

Posted

It's like a vortex or a black hole. Once they suck you in there's no escaping!:shock: You're doomed.:twisted:

Posted

Wow...I didn't think this was for a structural drawing. Being a structural designer myself, I don't think this command/lisp would be all that useful, but to each his own

Posted

Same here. The line between columns could be started/ended using the M2P command. Depending upon the interior length of the flange the result would be pretty close to what the OP described. But, he is doing all this after-the-fact.

Posted

Surely something easy must be possible here?

After all dimension leader lines have a gap (and extension) generated automaticaly; so this should be possible with normal lines???

 

(PS. I use LT most of the time so am not very familiar with lisp / vba).

Posted

I'm still not sure how this helps...perhaps a sample drawing?

Posted

Here is something that should work even on 3D lines.

 

[b][color=BLACK]([/color][/b]defun c:lline [b][color=FUCHSIA]([/color][/b]/ add ss i en ed p10 p11 p20 p21[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nPositive to Add Length - Negative To Subtract Length"[/color][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq add [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nDistance To Change Each End Of The LINE:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq add [b][color=NAVY]([/color][/b]- add[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b]
                            [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=RED])[/color][/b]
                                [b][color=RED]([/color][/b]cons 410 [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
                                [b][color=RED]([/color][/b]cons 67 [b][color=PURPLE]([/color][/b]- 1 [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"TILEMODE"[/color][b][color=TEAL])[/color][/b][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=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]setq i [b][color=MAROON]([/color][/b]sslength ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]minusp [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1- i[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]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
                   p10 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                   p11 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                   p20 [b][color=GREEN]([/color][/b]point_on_line p10 p11 add[b][color=GREEN])[/color][/b]
                   p21 [b][color=GREEN]([/color][/b]point_on_line p11 p10 add[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]subst [b][color=BLUE]([/color][/b]cons 10 p20[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b] ed[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]subst [b][color=BLUE]([/color][/b]cons 11 p21[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b] ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b]entmod ed[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]

[color=#8b4513];;;point_on_line - a point on the line p1,p2 at a specified distance from p1[/color]
[color=#8b4513];;;ARG -> StartPt EndPt Distance[/color]
[color=#8b4513];;;RET -> PointList[/color]
[b][color=BLACK]([/color][/b]defun point_on_line [b][color=FUCHSIA]([/color][/b]p1 p2 dist[b][color=FUCHSIA])[/color][/b]
  [b][color=FUCHSIA]([/color][/b]mapvec '+ p1 [b][color=NAVY]([/color][/b]mapvec '* [b][color=MAROON]([/color][/b]mapvec '- p2 p1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]/ dist [b][color=GREEN]([/color][/b]distance p1 p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

[color=#8b4513];;;Point Functions - Apply math & boolean Functions To Points With Float[/color]
[b][color=BLACK]([/color][/b]defun mapvec [b][color=FUCHSIA]([/color][/b]f v1 v2[b][color=FUCHSIA])[/color][/b]  [color=#8b4513];;;Quoted_Function value1_pt_list value2[/color]
  [b][color=FUCHSIA]([/color][/b]cond [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]null v2[b][color=MAROON])[/color][/b]
         [b][color=MAROON]([/color][/b]mapcar f v1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]listp v2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
         [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]a[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]eval f[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float a[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float v2[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] v1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]T
         [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]a b[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]eval f[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float a[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float b[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] v1 v2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

-David

Posted

can you select all the lines and then change there length in properties?

I work mostly in 3d so im not sure if you can do this with a line.

I know it can be done with 3d objects.

Posted

No, I’ve tried that to no avail, at least in 2D anyway. Not to worry, what I’ve got now is ample.

 

  • 4 months later...
Posted

Well, here we are again!

Have been using this command for a while now and it has been of great, great use to me, but there is one last annoyance that is hindering its use... When I try to use the command through a view port, it simply does not recognise anything selected. It would be great if someone could offer their expertise to make a good command better! :)

Many thanks

Posted

Perhaps this, using Davids code:

 

[b][color=BLACK]([/color][/b]defun c:lline [b][color=FUCHSIA]([/color][/b]/ add ss i en ed p10 p11 p20 p21[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nPositive to Add Length - Negative To Subtract Length"[/color][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq add [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nDistance To Change Each End Of The LINE:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq add [b][color=NAVY]([/color][/b]- add[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b][b][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]setq i [b][color=MAROON]([/color][/b]sslength ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]minusp [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1- i[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]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b]
                   p10 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                   p11 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
                   p20 [b][color=GREEN]([/color][/b]point_on_line p10 p11 add[b][color=GREEN])[/color][/b]
                   p21 [b][color=GREEN]([/color][/b]point_on_line p11 p10 add[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]subst [b][color=BLUE]([/color][/b]cons 10 p20[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b] ed[b][color=GREEN])[/color][/b]
                   ed [b][color=GREEN]([/color][/b]subst [b][color=BLUE]([/color][/b]cons 11 p21[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b] ed[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b]entmod ed[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]

[color=#8b4513];;;point_on_line - a point on the line p1,p2 at a specified distance from p1[/color]
[color=#8b4513];;;ARG -> StartPt EndPt Distance[/color]
[color=#8b4513];;;RET -> PointList[/color]
[b][color=BLACK]([/color][/b]defun point_on_line [b][color=FUCHSIA]([/color][/b]p1 p2 dist[b][color=FUCHSIA])[/color][/b]
  [b][color=FUCHSIA]([/color][/b]mapvec '+ p1 [b][color=NAVY]([/color][/b]mapvec '* [b][color=MAROON]([/color][/b]mapvec '- p2 p1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]/ dist [b][color=GREEN]([/color][/b]distance p1 p2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

[color=#8b4513];;;Point Functions - Apply math & boolean Functions To Points With Float[/color]
[b][color=BLACK]([/color][/b]defun mapvec [b][color=FUCHSIA]([/color][/b]f v1 v2[b][color=FUCHSIA])[/color][/b]  [color=#8b4513];;;Quoted_Function value1_pt_list value2[/color]
  [b][color=FUCHSIA]([/color][/b]cond [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]null v2[b][color=MAROON])[/color][/b]
         [b][color=MAROON]([/color][/b]mapcar f v1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]listp v2[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
         [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]a[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]eval f[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float a[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float v2[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] v1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
        [b][color=NAVY]([/color][/b]T
         [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]a b[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b][b][color=RED]([/color][/b]eval f[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float a[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]float b[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] v1 v2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

Posted

And it works!! Thanks a bunch for helping me with this, I love this command :D

Posted
And it works!! Thanks a bunch for helping me with this, I love this command :D

 

You're welcome, but really it was all David :)

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