| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: pline mit arc via entmake erstellen (830 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 12. Jul. 2004 15:49 <-- editieren / zitieren --> Unities abgeben:
hi ! ich möchte eine polylinie mit bögen via entmake erstellen. habe hierzu mir die gruppen eines vorlagen elementes erstellt und dann nachgebaut. jetzt bekomme ich immer noch die fehlermeldung, dass eine dxf-gruppe falsch sein soll ! vielleicht kann einer von euch einmal einen blick darauf werfen ! vielen dank im voraus. gruß Jan :-) (entmake (list (cons 0 "LWPolyline") (cons 6 "Continuous") (cons 8 "0");Layername (cons 62 2) (cons 70 0);Geschlossen ? (cons 38 0);Elevation (cons 39 0);Thinkness (cons 90 8) (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") ;;Beginn der Haltebucht - Anfang R1 (cons 10 (list 0.0 68.9415));Pkt 1 (cons 40 0.0) (cons 41 0.0) (cons 42 0.049389) ;Bulge ;;Ende - R1 - Tangente (cons 10 (list 0.776773 61.0969));Pkt 2 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0);Gerade ;;Ende Tangente - Beginn R2 (cons 10 (list 2.61161 51.9516))Pkt 3 (cons 40 0.0) (cons 41 0.0) (cons 42 -0.049389);Bulge ;;Haltestelle - Anfang (cons 10 (list 3.0 48.0292));Pkt 4 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0);Gerade ;;Haltestelle - Ende - Beginn R3 (cons 10 (list 3.0 28.5807));Pkt 5 (cons 40 0.0) (cons 41 0.0) (cons 42 -0.0298661);Bulge ;;Ende - R3 - Tangente (cons 10 (list 2.57261 21.432));Pkt 6 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0);Gerade ;;Ende Tangente - Beginn R4 (cons 10 (list 0.569853 4.74877));Pkt 7 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0298396);Bulge ;;Ende der Haltebucht (cons 10 (list 0.00101525 -4.77432));Pkt 8 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0) ;;(cons 210 0.0 0.0 1.0) );end-list );end-make
------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 12. Jul. 2004 17:13 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
Jan1 Mitglied CAD Consultant
Beiträge: 17 Registriert: 12.05.2004
|
erstellt am: 12. Jul. 2004 17:13 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hallo Jan, ich habe zwar keine Antwort auf Deine Frage, dafür aber einen Vorschlag, wie Du das Problem lösen kannst. ============================================================== (setq lVerts (list (list '(0.0 68.9415) 0.049389) (list '(0.776773 61.0969) 0.0) (list '(2.61161 51.9516) -0.049389) (list '(3.0 48.0292) 0.0) (list '(3.0 28.5807) -0.0298661) (list '(2.57261 21.432) 0.0) (list '(0.569853 4.74877) 0.0298396) (list '(0.00101525 -4.77432) 0.0))) (setq lVertsTmp nil) (foreach lVert (mapcar 'car lVerts) (setq lVertsTmp (append lVertsTmp (list (car lVert) (cadr lVert)))) ); end foreach (setq vlaArr (vlax-make-safearray vlax-vbDouble (cons 0 (1- (length lVertsTmp))))) (vlax-safearray-fill vlaArr lVertsTmp) (setq vlaVar (vlax-make-variant vlaArr)) (setq vlaPolyLine (vla-AddLightweightPolyline (vla-get-modelSpace (vla-get-activeDocument (vlax-get-acad-object))) vlaVar)) (setq iNdex 0) (repeat (length lVerts) (vla-setBulge vlaPolyLine iNdex (cadr (nth iNdex lVerts))) (setq iNdex (1+ iNdex)) ); end repeat ============================================================== Gruß, Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anybody Mitglied
Beiträge: 2 Registriert: 12.07.2004 2000 AutoLISP VBA
|
erstellt am: 12. Jul. 2004 17:18 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
anybody Mitglied
Beiträge: 2 Registriert: 12.07.2004
|
erstellt am: 12. Jul. 2004 17:58 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
; Damit hats bei mir in R2000 funktioniert !! (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 67 0) (cons 410 "Model") (cons 8 "0");Layername (cons 100 "AcDbPolyline") (cons 90 2) (cons 70 0);Geschlossen ? (cons 43 0);Geschlossen ? (cons 38 0);Elevation (cons 39 0);Thinkness ;;Beginn der Haltebucht - Anfang R1 (cons '10 (list 0.0 68.9415));Pkt 1 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0) ;Bulge ;;Ende - R1 - Tangente (cons '10 (list 0.776773 61.0969));Pkt 2 (cons 40 0.0) (cons 41 0.0) (cons 42 0.0);Gerade ;;Ende Tangente - Beginn R2 ;;(cons 210 0.0 0.0 1.0) );end-list );end-make
; sag wie's bei Dir aussieht ; Gruesse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dabrunz Mitglied
Beiträge: 127 Registriert: 28.05.2003
|
erstellt am: 13. Jul. 2004 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Zitat:
jetzt bekomme ich immer noch die fehlermeldung, dass eine dxf-gruppe falsch sein soll !vielleicht kann einer von euch einmal einen blick darauf werfen !
Tag. Vielleicht guckst du hier: (cons 10 (list 2.61161 51.9516))Pkt 3; da fehlt wohl das Zeilenend-Kommentar-Zeichen. Darüber hinaus gilt es bei LWPLs eine vorgegebene Reihenfolge bei den Gruppencodes strikt einzuhalten und die kannst du dir ansehen, wenn du sie aus den Entity-Daten einer bestehenden LWPL abliest. Wichtig ist dass nach dem Entity-Header (endet mit dem 2. 100er-GC und ist im Wesendlichen bei allen Entities gleich) die Reihenfolge lauten muss: 90, 70, 43, 38, 39 und dann die Vertices 10, 40, 41, 42, dann klappt's auch mit der LWPL ... Achim Dabrunz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |