Jump to content

How to reduce a group of line lengths uniformly?


DWG Destroyer

Recommended Posts

  • Replies 35
  • Created
  • Last Reply

Top Posters In This Topic

  • DWG Destroyer

    9

  • ReMark

    8

  • ronjonp

    5

  • Lee Mac

    3

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 4 months later...

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

Link to comment
Share on other sites

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]

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