TheSwamp

CAD Forums => CAD General => Topic started by: MSTG007 on July 12, 2017, 08:55:38 AM

Title: identify parallel lines
Post by: MSTG007 on July 12, 2017, 08:55:38 AM
Any way to identify from a selection of lines or polylines which ones are parallel to the one you select? I really do not feel like redrawing something if I already know which ones are ok. Thanks for the help!
Title: Re: identify parallel lines
Post by: CAB on July 12, 2017, 09:09:13 AM
Lots of info on this site.

http://www.theswamp.org/index.php?topic=23170.msg281630#msg281630
Title: Re: identify parallel lines
Post by: MSTG007 on July 12, 2017, 09:10:40 AM
Thanks CAB, ill check it out.
Title: Re: identify parallel lines
Post by: dgorsman on July 17, 2017, 04:40:37 PM
If the lines are reduced to unit vectors they should be directly comparable (with a bit of fuzz).
Title: Re: identify parallel lines
Post by: MSTG007 on July 17, 2017, 05:00:18 PM
I kind of had to redraw it. But this is what I was looking at. We received an site plan from the architect. I wanted to make sure that the parking stalls were parallel with the building. So by selecting a line it would then high light all the lines that are parallel with it.
Title: Re: identify parallel lines
Post by: MSTG007 on August 14, 2017, 12:59:45 PM
hate to do this... I still cannot figure this out. I looked through the link CAB provided. I thought I could get it figured out.  :tickedoff: Apparently not.

Title: Re: identify parallel lines
Post by: Atook on August 14, 2017, 01:10:58 PM
Basic approach will be to pick a line and get its slope, call it m.

Then select all lines/polylines in the drawing and iterate through them. You'll probably want to filter out for polylines that only have 2 vertices.

check the slope of each line, call it m2

if((m2.isclose(m)) or (m2.isclose(m+PI))) then the line/polyline is parallel if it's parallel, highlight it.

You can also find the slope of a line by getting the (change in Y)/(change in X) between the endpoints.

Edit: You'll also need to check for a vertical line, which has an undefined slope (change in x = 0).

Not sure what language you're hoping to work in, but that's the basic idea. I've no idea how to do this without code. :)
Title: Re: identify parallel lines
Post by: ronjonp on August 14, 2017, 03:12:31 PM
Here's a quick one ..

Code - Auto/Visual Lisp: [Select]
  1. (defun c:foo (/ _foo e i s)
  2.   (if (and (setq e (car (entsel "\nPick line to set angle: ")))
  3.            (wcmatch (cdr (assoc 0 (entget e))) "LINE,*POLYLINE")
  4.            (setq i (_foo e))
  5.            (setq s (ssget "_X"
  6.                           '((-4 . "<OR")
  7.                             (0 . "line")
  8.                             (-4 . "<AND")
  9.                             (0 . "*polyline")
  10.                             (90 . 2)
  11.                             (-4 . "AND>")
  12.                             (-4 . "OR>")
  13.                            )
  14.                    )
  15.            )
  16.       )
  17.     (progn (foreach pl (mapcar 'cadr (ssnamex s))
  18.              (if (not (equal (_foo pl) i 1e-3))
  19.                (ssdel pl s)
  20.              )
  21.            )
  22.            (sssetfirst nil s)
  23.     )
  24.   )
  25.   (princ)
  26. )
Title: Re: identify parallel lines
Post by: MSTG007 on August 14, 2017, 03:37:25 PM
saving the day once again! I didn't even think slope. Thank you  :whistling:
Title: Re: identify parallel lines
Post by: ronjonp on August 14, 2017, 04:02:06 PM
saving the day once again! I didn't even think slope. Thank you  :whistling:
Glad to help :)
Title: Re: identify parallel lines
Post by: MSTG007 on August 14, 2017, 04:07:03 PM


BTW how's your day job going?
Title: Re: identify parallel lines
Post by: ronjonp on August 14, 2017, 04:11:27 PM


BTW how's your day job going?
;D
Title: Re: identify parallel lines
Post by: MSTG007 on August 14, 2017, 04:14:55 PM
lol. Not sure how to respond to that one. That is one LARGE ninja.
Title: Re: identify parallel lines
Post by: Bryco on August 17, 2017, 11:25:07 PM
quickselect  can also tell you this.
r-click in empty part of drawing ->Quickselect->object type->line->angle->value= 90->ok
works like a charm
Title: Re: identify parallel lines
Post by: ronjonp on August 18, 2017, 09:20:03 AM
quickselect  can also tell you this.
r-click in empty part of drawing ->Quickselect->object type->line->angle->value= 90->ok
works like a charm
This is another way, but only works with lines. The code above will work with plines too :)