Steven P Posted Sunday at 12:40 PM Posted Sunday at 12:40 PM 1 hour ago, SLW210 said: For AutoCAD, it helps if BOTH polylines go the same direction. I think Lee Mac had something to work out polyline direction, so should be able to check and reverse a polyline if necessary. Reverse back again after Quote
PGia Posted Sunday at 03:37 PM Author Posted Sunday at 03:37 PM 4 hours ago, SLW210 said: From what I have gathered, no easy task to do this, many GIS programs seem to struggle with pinpoint accuracy as well. The method for QGIS, is involved, so I didn't get time to run through it with the plugin, but I did dig into reddit and some GIS sites. Basically they do similar method, they just add a lot of points down the "polyline/line" and run the appropriate "centerline tool". Where someone posted results, I saw some in some of them the same "off center through some areas" as in the methods posted here. This was apparently plenty good enough for most GIS users, though I only did a relatively quick dig. In a similar method for AutoCAD, maybe adding more points to the polylines would help. I might have time Monday at home to check QGIS. Though I did import the OPs drawings into a session, the first one comes in very strange, the second seemed to be correct. The OP still hasn't answered why the second .dwg posted comes up as not an AutoCAD drawing. For AutoCAD, it helps if BOTH polylines go the same direction. I’m sorry. I didn’t think this was important — but maybe I was wrong. I usually copy drawings from my PC to edit them on my smartphone. The app I use on my smartphone is DWG FastView. I don’t remember where I sent it from, but if that message appeared when opening it, it must be because I saved the drawing on my smartphone for some reason and sent it from there. Quote
BIGAL Posted yesterday at 02:48 AM Posted yesterday at 02:48 AM "Plines in same direction", Yes Lee-Mac has a method also. Note the use of Pedit as Bricscad does not have a "Reverse" command, as at V25. ; Checking if pline is CW or CCW and set to CCW ; Orignal idea by Kent Cooper, 1 August 2018 Offsetinorout.lsp ; By Alan H July 2020 (defun AH:chkcwccw (ent / objnew area1 area2 obj minpoint maxpoint) (setq obj (vlax-ename->vla-object ent)) (vla-GetBoundingBox obj 'minpoint 'maxpoint) (setq pointmin (vlax-safearray->list minpoint)) (setq pointmax (vlax-safearray->list maxpoint)) (setq dist (/ (distance pointmin pointmax) 20.0)) (vla-offset obj dist) (setq objnew (vlax-ename->vla-object (entlast))) (setq area1 (vlax-get objnew 'Area)) (vla-delete objnew) (vla-offset obj (- dist)) (setq objnew (vlax-ename->vla-object (entlast))) (setq area2 (vlax-get objnew 'Area)) (vla-delete objnew) (if (> area1 area2) (command "Pedit" ent "R" "") ) (princ) ) (defun c:CWCCW ( / *error* x ent oldsnap doc ss) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq oldsnap (getvar 'osmode)) (setvar 'osmode 0) (prompt (strcat "\nSelect Plines to check")) (if (setq ss (ssget '((0 . "*POLYLINE")))) (progn (repeat (setq x (sslength ss)) (setq ent (ssname ss (setq x (- x 1)))) (AH:chkcwccw ent) ) ) ) (vla-endundomark doc) (alert (strcat (rtos y 2 0) " Plines reversed")) (setvar 'osmode oldsnap) (princ) ) (vl-load-com) (prompt "\nType CWCCW to set plines to CCW") (c:CWCCW) 1 Quote
SLW210 Posted 18 hours ago Posted 18 hours ago On 11/6/2025 at 9:56 AM, PGia said: I suppose a method based on calculating many points helps to average out those errors, but the result can only be an approximation. And IMO, the result shouldn’t be an approximation — it should be exact. There lies the main issue with this, the last sentence is actually incorrect. Unless you have 2 exactly parallel lines/polylines the result is always going to be an approximation, the less different the better, but still just an approximation, even if you compare every conceivable point, if they are different lengths it's odd man out. If it's a very complicated pair of lines, you would need a lot of points to calculate, hence very slow. Jeffery P Sanders Rolling_Ball.lsp appears to get pretty close. This issue comes up all the time, just go to anything related to Civil 3D, GIS, etc. Example https://discourse.mcneel.com/t/finding-the-average-curve-between-two-curves/149668 If you want some unattainable perfection, I suggest you invest in modern software. Quote
SLW210 Posted 1 hour ago Posted 1 hour ago I'll try to see how QGIS works if I get any CAD time at home, I started yesterday on it, but I had the latest with QT6 experimental downloaded and the plug-in for centerlines need the non-QT6 version, so spent the time removing and installing the correct version. So, if anybody was interested, be sure to download a version that the plug-in will work with. I also found more information on how the GIS folk tackle this issue and some new Plug-Ins to try for QGIS. Finding centrelines from polygons in QGIS - Geographic Information Systems Stack Exchange line - Creating centerline of river in QGIS? - Geographic Information Systems Stack Exchange HCMGIS — QGIS Python Plugins Repository Geo Simplification (processing) — QGIS Python Plugins Repository Voronoi diagram - Wikipedia Even better, just get the proper tool for the job. Probably less hoops to jump through for ArcGIS Pro, you can utilize the Polygon To Centerline tool. I'll try to remember to check with my daughter what she uses at work. Quote
Recommended Posts
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.