Exporting 'String' information, and removing extra vertices from projected 3D polyline
Hi,
Still very new to BricsCAD, so I will explain what I used to do in Civil3D and hope you can help me work out the way to do it in BricsCAD; there are two parts to this query because they are connected.
We design underground pipework and, as such, we use centre line markers which show XYZ points of installation.
In C3D we would draw a 3D polyline between these markers, then project that 3DP to the TIN surface to get the depths. We can have a vertex at every point where the 3DP crosses the TIN surface, or we can untick a box so it will only add a vertex where the marker is, so we would end up the same number of vertices as there are markers (if that makes sense?)
Part one of my query:
If I draw a 3DP in BricsCAD, then project that to the TIN surface, it puts a vertex at every single point where the 3DP crosses the TIN surface, and I can't seem to ask it not to do so. This results in far too many vertices, and means we cannot check everything properly.
Secondly....
I learned that, instead of using a 3DP, I can create a String, selecting each marker in turn, and selecting the surface. Great! That works nicely.
However, I need to export the XYZ of each vertex of the String to a spreadsheet - how can I do that?
Thanks for reading, and TIA for any help you can give me.
Still very new to BricsCAD, so I will explain what I used to do in Civil3D and hope you can help me work out the way to do it in BricsCAD; there are two parts to this query because they are connected.
We design underground pipework and, as such, we use centre line markers which show XYZ points of installation.
In C3D we would draw a 3D polyline between these markers, then project that 3DP to the TIN surface to get the depths. We can have a vertex at every point where the 3DP crosses the TIN surface, or we can untick a box so it will only add a vertex where the marker is, so we would end up the same number of vertices as there are markers (if that makes sense?)
Part one of my query:
If I draw a 3DP in BricsCAD, then project that to the TIN surface, it puts a vertex at every single point where the 3DP crosses the TIN surface, and I can't seem to ask it not to do so. This results in far too many vertices, and means we cannot check everything properly.
Secondly....
I learned that, instead of using a 3DP, I can create a String, selecting each marker in turn, and selecting the surface. Great! That works nicely.
However, I need to export the XYZ of each vertex of the String to a spreadsheet - how can I do that?
Thanks for reading, and TIA for any help you can give me.
0
Comments
-
I would raise a support request to get more info on options with strings. They don't seem to currently include any details on their XYZ. You can get a lot of other info from the STRINGEDITOR, which you can right click on to copy and paste to a spreadsheet.
If you EXPLODE the string, then it reverts back to a 3D Polyline. Having done this You can use DATAEXTRACTION to export the vertices to a spreadsheet. Attach an example .DXD file that illustrates this. To use run the -DATAEXTRACTION command in a drawing with polylines, then select the .DXD file. It should generate a spreadsheet called 3DPolyData.xlsx in the same folder as the drawing.Jason Bourhill
CAD Concepts Ltd
cadconcepts.co.nz
0 -
Posted a comment on other forum, re get 3dpoly vertices as a list easy done.
Solved: LISP to extract and display as a note Z-elevation of a 3D snap points - Autodesk Community
But realistically the best answer is look at Civil Site Design it has Road, Drainage and Sewer design just draw an alignment and a design vertical grading is created which is interactive, create a network of pipes, then plot long sections etc. Yes it runs on Bricscad Pro.
Home Page - Civil Site Design
There may be some Youtube tutorials will see if I can find.0 -
Hi Alan, thank you for your comment.
Unfortunately, I can't access that first link (403 Forbidden) to the LISP, but I notice it's to the autodesk forum, so I will go to the forum and try to find it on there.
The Civil Site Design is a good thought, too, thanks.
0 -
This is pick a 2d or 3d poly and get vertices.; pline co-ords example; By Alan H(defun getcoords (ent)(vlax-safearray->list(vlax-variant-value(vlax-get-property(vlax-ename->vla-object ent)"Coordinates")))); convert now to xyz(defun co-ords2xy (xyz / )(setq co-ordsxy '())(if (= xyz 2)(progn(setq I 0)(repeat (/ (length co-ords) 2)(setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))(setq co-ordsxy (cons xy co-ordsxy))(setq I (+ I 2)))))(if (= xyz 3)(progn(setq I 0)(repeat (/ (length co-ords) 3)(setq xy (list (nth i co-ords)(nth (+ I 1) co-ords)(nth (+ I 2) co-ords) ))(setq co-ordsxy (cons xy co-ordsxy))(setq I (+ I 3))))))(defun c:wow ( / )(setq obj (vlax-ename->vla-object (car (entsel "Pick obj"))))(setq co-ords (vlax-get obj 'coordinates))(cond(( = (vla-get-objectname obj) "AcDb2dPolyline")(co-ords2xy 2))(( = (vla-get-objectname obj) "AcDb3dPolyline")(co-ords2xy 3)))(princ co-ordsxy);(foreach pt co-ordsxy; (setq pt (list (car pt)(cadr pt) (caddr pt))); (command "text" "C" pt 1.5 0.0 (rtos (caddr pt) 2 2))(princ))(c:wow)0