29.12.2019
Posted by 
Draw Longsection From 3d Polyline Lisp Average ratng: 6,7/10 8398 reviews

Hello All!!!I am a road engineer and I know that many people have this problem: my topographical survey is in 2d with points and polylines not having Z elevation, the points are blocks with elevation as an atribute.I managed with the help of EATTEXT command in Autocad to extract a field report data containing X, Y, Z, and Point Code. With a lisp I inserted the points into Autocad and now are all 3D points.The lines are still 2D polylines(road edges, retaining walls, ditches etc) and I want to ask your help in writing a lisp ( my knowledge of composing lisps is 0 ) to elevate these polyline to the levels of the points(the polyline vertexes matches the points) for obtaining the DTM.I know one way that I can draw the 3D poly is by snaping to the points but i want to use an automatic mode as the number of polylines is high. Welcome to CADTutor AlexBelow is a rough draft of a possible program, but the code should hopefully perform as required:(defun c:poly23dpoly ( / enx idx lst pll ptl sel )(princ 'nSelect points & 2d polylines: ')(if (setq sel (ssget '((0.

  1. Autocad 3d Poly Line
  2. 3d Polylines To Surface

'LWPOLYLINE,POINT'))))(progn(repeat (setq idx (sslength sel))(setq enx (entget (ssname sel (setq idx (1- idx)))))(if (= 'POINT' (cdr (assoc 0 enx)))(setq ptl (cons (cdr (assoc 10 enx)) ptl))(setq pll (cons (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) enx)) pll))))(foreach grp pll(foreach vtx grp(if (setq vtx (car (vl-member-if '(lambda ( a ) (equal vtx (list (car a) (cadr a)) 1e-4)) ptl)))(setq lst (cons vtx lst))))(if (cdr lst)(progn(entmake '((0. 'POLYLINE') (70. ))(foreach vtx lst(entmake(list'(00. 32)(cons 10 vtx))))(entmake '((0.

'SEQEND')))))(setq lst nil))))(princ)). Are you trying to go backwards that is make a surface model from the blocks elev value, if so then you can ignore the line work, we actually turn our 3d line work in to 2d but keep the surface model intact.

How to install sims 4 custom content. I'm not sure whether you're still having the problem but I not long ago had the problem too, I do everything that everyone stated above but nothing even played for 5 minutes (probably longer) but I think I might of found a way you can find it, Not sure whether it'll work but.Click on This PC, then Click on your C Drive, which'll look like this - Acer ( C: ) (Without spaces) - If you've clicked on it, then you'll see a bunch of folders, Some with program files, etc.

Stops all the hassles about 2d/3d problems list a line that 99 long when its actually 2.47.A lot of people say we have a 3d plan because the plines have a elevation lable. When in fact their flat.If you have converted the blocks to points then just load straight into CIV3d and create a surface, Autocad Points are a direct input option in a couple of ways as a point group or as Autocad objects.The only real advantage you may gain is by introducing more pts along the lines and arcs to make a better surface model.

Autocad 3d Poly Line

CIV3d does not support curved breaklines (our other software does) so wasting time with arcs, not sure if they even get added as part of using Autocad objects doubtful. A last comment a suface TIN is made up of 3 pts so extra lines will make no difference as it goes from start to end of THE LINE. Bigal, i dont have surface jet. I have geodethic drawing witch is flaten 2d.

So i extract my atribut (blocks) to xyz file, to have point in 3d, xyz. Now im trying to draw a breaklines between these point to have a right surface when i created from point and breaklines. Thats not a problem to do by hand from point to point.

3d Polylines To Surface

Draw Longsection From 3d Polyline Lisp

But when i have circle or curved polyline i cant do that in civil except if i do aligment and the extract to polylines etc. Second is that that i have a big drawing with a lot of points to make breaklines between them. So i was thinking to do that with lisp program if its possible. So i need lift up to 3d point these geodethic curves, wich are line, polylines, circle.thx for response. Lee I am trying to find pretty sure you can ssget a IAeccPoint see code below, You can get NORTHING EASTING ELEVATION also a property using direct VL-get-Northing etcsome code!!(alert 'Pick CIV3D points press ESC or pick nothing to exit')(while (setq obj (vlax-ename-vla-object (car (entsel)))); vl 3d point convert to plain lisp(setq pt1 (vlax-safearray-list (vlax-variant-value (vlax-get-property obj 'Location'))))(setq ht (rtos (nth 2 pt1) 2 3)); Z val(setq ptx (nth 0 pt1))(setq pty (nth 1 pt1)). Hi, is that possible to update that lisp to work with cases where the points are not exactly on the polylines, but in some very small distance (I often get maps from surveyors with that situation, the points are very slightly moved, don't have idea why, maybe during transformation the points are not moved exactly to the polylines). It would be perfect if the lisp worked with some tolerance which could be chosen (for example, in road designs 0.05m) and newly created 3dpolylines would pick the elevation from all the points within that tolerance along picked polyline (2d).Or maybe there is a way I can move that points (nodes) to the closest point on the polyline automatically?

Welcome to CADTutor AlexBelow is a rough draft of a possible program, but the code should hopefully perform as required:(defun c:poly23dpoly ( / enx idx lst pll ptl sel )(princ 'nSelect points & 2d polylines: ')(if (setq sel (ssget '((0. 'LWPOLYLINE,POINT'))))(progn(repeat (setq idx (sslength sel))(setq enx (entget (ssname sel (setq idx (1- idx)))))(if (= 'POINT' (cdr (assoc 0 enx)))(setq ptl (cons (cdr (assoc 10 enx)) ptl))(setq pll (cons (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) enx)) pll))))(foreach grp pll(foreach vtx grp(if (setq vtx (car (vl-member-if '(lambda ( a ) (equal vtx (list (car a) (cadr a)) 1e-4)) ptl)))(setq lst (cons vtx lst))))(if (cdr lst)(progn(entmake '((0. 'POLYLINE') (70. ))(foreach vtx lst(entmake(list'(00. 32)(cons 10 vtx))))(entmake '((0.

'SEQEND')))))(setq lst nil))))(princ)).