cibola Posted July 22, 2009 Posted July 22, 2009 I am looking for a lisp that will export by layer the Cartesian coordinates of all points that make up the polylines, lines, blocks, text arcs and other data to a csv file. Does anybody have such a lisp or know where I can get one? Thanks in advance! Quote
Lee Mac Posted July 23, 2009 Posted July 23, 2009 When you say "all points".... if you really mean "all points" then there will be infinitely many Quote
tagkelas Posted July 24, 2009 Posted July 24, 2009 Or ,Lee Mac, how can we insert points to all vertexs of a polyline with a lisp rutine? ...... And then export the points.....: http://www.cadtutor.net/forum/showpost.php?p=22581&postcount=4 Quote
Lee Mac Posted July 24, 2009 Posted July 24, 2009 Yes, I believe this can be done - I'll see if I get a minute. Quote
cibola Posted July 26, 2009 Author Posted July 26, 2009 Hey thanks for the suggestions. Actually most of what I'm looking for is contained in the .dxf file. However, I'm wondering if there's an efficient way that I can format the dxf data or send it to a database? Quote
Lee Mac Posted July 26, 2009 Posted July 26, 2009 This should insert and export the points to either a csv or txt file. [i][color=#990099];; Polyline Point Exported, by Lee McDonnell 26.07.2009[/color][/i][b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:ptExp [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] doc spc ss file sel pts[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=Blue]:vlax-true[/color][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"*POLYLINE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] file [b][color=RED]([/color][/b][b][color=BLUE]getfiled[/color][/b] [b][color=#ff00ff]"Output File"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] *load *load [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"csv;txt"[/color][/b] [b][color=#009900]9[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *load file file [b][color=RED]([/color][/b][b][color=BLUE]open[/color][/b] file [b][color=#ff00ff]"a"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] sel [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pts [b][color=RED]([/color][/b]vlax-list->3D-point [b][color=RED]([/color][/b][b][color=BLUE]vlax-get[/color][/b] Obj [b][color=DARKRED]'[/color][/b]Coordinates[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectName[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=#ff00ff]"AcDbPolyline"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] file[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-addPoint[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] pts[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Points from "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Count[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" Polylines written to file >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]close[/color][/b] file[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] vlax-list->3D-point [b][color=RED]([/color][/b]lst x [b][color=BLUE]/[/color][/b] oLst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] oLst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x [b][color=#009999]0.0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] oLst[b][color=RED])[/color][/b] lst [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x [color=Blue][b]cddr[/b][/color] [b][color=Blue]cdddr[/color][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] oLst[b][color=RED])[/color][/b] Quote
tagkelas Posted July 26, 2009 Posted July 26, 2009 Lee Mac Do I do something wrong?! Look at the sample. With your lisp routine the "elevation" isn't written in txt file. Quote
Lee Mac Posted July 26, 2009 Posted July 26, 2009 I assumed that the Polylines were at 0,0. But I can correct it. Quote
Lee Mac Posted July 27, 2009 Posted July 27, 2009 Try this: [i][color=#990099];; Polyline Point Exported, by Lee McDonnell 26.07.2009[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:ptExp [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] doc spc ss file sel pts[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] :vlax-true[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"*POLYLINE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] file [b][color=RED]([/color][/b][b][color=BLUE]getfiled[/color][/b] [b][color=#ff00ff]"Output File"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] *load *load [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"csv;txt"[/color][/b] [b][color=#009900]9[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *load file file [b][color=RED]([/color][/b][b][color=BLUE]open[/color][/b] file [b][color=#ff00ff]"a"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] sel [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pts [b][color=RED]([/color][/b]vlax-list->3D-point [b][color=RED]([/color][/b][b][color=BLUE]vlax-get[/color][/b] Obj [b][color=DARKRED]'[/color][/b]Coordinates[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectName[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=#ff00ff]"AcDbPolyline"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] file[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-addPoint[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] pts[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Points from "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Count[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" Polylines written to file >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]close[/color][/b] file[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] vlax-list->3D-point [b][color=RED]([/color][/b]lst x Obj [b][color=BLUE]/[/color][/b] oLst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] oLst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Elevation[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] oLst[b][color=RED])[/color][/b] lst [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x cddr cdddr[b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] oLst[b][color=RED])[/color][/b] Quote
cibola Posted July 27, 2009 Author Posted July 27, 2009 Thanks, but it's giving me the following error message: error: extra cdrs in dotted pair on input Also, will this only grab polylines? My drawing has several lines, arcs and a little bit of text. Most of my info that I need is in the .dxf file... is there a good way to export that information directly to a database from AutoCAD? Quote
Lee Mac Posted July 27, 2009 Posted July 27, 2009 I get no such error. Make sure you have copied ALL the code in the frame. I made this for Tagkelas' request, but I believe this could be extended for more options. Lee Quote
tagkelas Posted July 28, 2009 Posted July 28, 2009 Perfect , as always.... Thanks a lot Lee Mac Quote
gilsoto13 Posted September 25, 2009 Posted September 25, 2009 I am looking for a lisp that will export by layer the Cartesian coordinates of all points that make up the polylines, lines, blocks, text arcs and other data to a csv file. Does anybody have such a lisp or know where I can get one? Thanks in advance! There is a routine to export insertion points from, blocks or text... Someone else asked for it.. and I am looking for that thread... http://www.petrkonecny.eu/autolisp xyzout.lsp Quote
Jozi68 Posted July 27, 2011 Posted July 27, 2011 Dear Lee Mac, could you perhaps change this routine to put a blank line or even better any marker between the polylines? I.e I need to know where the one ends and the next one starts. That would really help a lot. Thanks. Jozi Quote
Lee Mac Posted July 27, 2011 Posted July 27, 2011 A quick rewrite... (defun c:test ( / _lst->str el en fn fo i pt ss zv ) ;; © Lee Mac 2011 (defun _lst->str ( lst del ) (if (cdr lst) (strcat (car lst) del (_lst->str (cdr lst) del)) (car lst) ) ) (if (and (setq ss (ssget '((0 . "*POLYLINE")))) (setq fn (getfiled "Output File" "" "csv,txt" 1)) (setq fo (open fn "w")) ) (progn (repeat (setq i (sslength ss)) (setq en (ssname ss (setq i (1- i))) el (entget en) ) (cond ( (eq "LWPOLYLINE" (cdr (assoc 0 el))) (setq zv (list (cdr (assoc 38 el)))) (while (setq pt (assoc 10 el)) (write-line (_lst->str (mapcar 'rtos (append (cdr pt) zv)) ",") fo) (setq el (cdr (member pt el))) ) ) ( t (while (eq "VERTEX" (cdr (assoc 0 (setq el (entget (setq en (entnext en))))))) (write-line (_lst->str (mapcar 'rtos (cdr (assoc 10 el))) ",") fo) ) ) ) (write-line "" fo) ) (setq fo (close fo)) (startapp "notepad" fn) ) ) (princ) ) Quote
Jozi68 Posted July 28, 2011 Posted July 28, 2011 Thank you so much Lee Mac, it is working like a dream. Now here's a different challenge: Instead of exporting the XYZ coordinates, can you convert it to Coordinates in decimal degrees? I know this is an alltogether different issue. In civil 3d there is the geodetic calculator, that can do it one by one, but that will not work for thousands of points. My drawing zone is Republic of South Africa. The coordinate system is: Republic of South Africa, Transverse Mercator with WGS84 datum. There are a few spreadsheet on the internet that claims to be doing this, but I have not found one that works. Quote
eldon Posted July 28, 2011 Posted July 28, 2011 Now here's a different challenge:Instead of exporting the XYZ coordinates, can you convert it to Coordinates in decimal degrees? This is a very complicated calculation, because it transforms Cartesian coordinates on a flat surface to Geographical coordinates on the surface of the Earth. All depending where you are on the Earth, there are different factors to take into the equation. I think this is the wrong place to wish for this, and if you do find a way, you can probably sell it for a lot of money. You should get on to AutoDesk, and get the geodetic calculator to do batch transformations. Quote
Tyke Posted July 28, 2011 Posted July 28, 2011 In Civil 3D there's built in functionality that allows you to transform data from one coordinate system into another. But it looks as if Jozi only has vanilla AutoCAD Quote
woodman78 Posted January 31, 2013 Posted January 31, 2013 LeeMac, I am using this routine to save me alot of hard work in reworking points files. One thing though: it exports to 2 decimal places. Can this be changed to 3? ;; Polyline Point Exported, by Lee McDonnell 26.07.2009 (defun c:ptExp (/ doc spc ss file sel pts) (vl-load-com) (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object)) spc (if (zerop (vla-get-activespace doc)) (if (= (vla-get-mspace doc) :vlax-true) (vla-get-modelspace doc) (vla-get-paperspace doc)) (vla-get-modelspace doc))) (if (and (setq ss (ssget '((0 . "*POLYLINE")))) (setq file (getfiled "Output File" (if *load *load "") "csv;txt" 9))) (progn (setq *load file file (open file "a")) (vlax-for Obj (setq sel (vla-get-ActiveSelectionSet doc)) (setq pts (vlax-list->3D-point (vlax-get Obj 'Coordinates) (cond ((eq (vla-get-ObjectName Obj) "AcDbPolyline"))) Obj)) (mapcar (function (lambda (x) (write-line (strcat (rtos (car x) 2 2) (chr 44) (rtos (cadr x) 2 2) (chr 44) (rtos (caddr x) 2 2)) file) (vla-addPoint spc (vlax-3D-point x)))) pts)) (princ (strcat "\n<< Points from " (itoa (vla-get-Count sel)) " Polylines written to file >>")) (close file) (vla-delete sel))) (princ)) (defun vlax-list->3D-point (lst x Obj / oLst) (while lst (setq oLst (cons (list (car lst) (cadr lst) (if x (vla-get-Elevation Obj) (caddr lst))) oLst) lst ((if x cddr cdddr) lst))) oLst) 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.