| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Liste von linien exportieren (1220 mal gelesen)
|
Frifer Mitglied
Beiträge: 80 Registriert: 19.07.2012 i7 @x 3.5 mhz 16 GB Ram win 10 Pro 64 Bit GTX 560 Ti
|
erstellt am: 16. Feb. 2015 10:57 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle! ich bräuchte einen script der mir aus einer beliebigen Zeichnung eine liste von linien erstellt. und zwar nach dieser struktur: punkte: P,X,Y P= Punkt, X und Y sind die Koordinaten. Linien: L,X1,Y1,X2,Y2 L=Linie, x1,y1,x2,y2 sind die Koordinaten der Anfangs und Endpunkte. Bogen: B,x1,y1,x2,y2,x3,y3 B=Bogen, xy1 Koordinaten des Mittelpunktes, x2y2 x3y3 Koordinaten des Anfang und Ende des Bogens. Kreis: K,x1,x2, r K=Kreis, x1,x2 Koordinaten des Mittelpunktes, r=radius. Alle anderen Linienarten können ignoriert werden. Das müsste ich einfach als Auflistung in eine TXT datei schreiben. Ist so was überhaupt machbar? Danke Grüße Igor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 16. Feb. 2015 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für Frifer
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 16. Feb. 2015 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für Frifer
Hallo Igor, Wenn ich mich recht erinnere arbeitet ihr mit Inventor (?) Beim "normalen" Autocad gibt es den Befehl _dataextract damit kannst Du Dir die Tabellen selber zurechtlegen aber ob der bei Inventor auch vorhanden ist (Ergänze doch bitte beim Antworten unten die System-Info ) Programmtechnisch ist das natürlich auch möglich - Selectionset über die gewünschten Elemente - Ausgabe der gewünschten Daten Die Frage ist nur : - Sollen Bögen in Polylinien auch zerlegt werden? Dann wird das ganze schon etwas komplizierter und aufwändiger. - Brauchst Du eine gewisse Sortierreihenfolge? oder einfach nur die Werte? Grüße Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frifer Mitglied
Beiträge: 80 Registriert: 19.07.2012 i7 @x 3.5 mhz 16 GB Ram win 10 Pro 64 Bit GTX 560 Ti
|
erstellt am: 18. Feb. 2015 08:28 <-- editieren / zitieren --> Unities abgeben:
Hallo! Danke für eurer Antwort! Ja wir verwenden Inventor, aber auch Autocad. Dies ist aber für ein kleines privates Projekt.. Ich brauche eine liste der Linien sodass ich die dann in meinem CNC Laser gravierer eingeben kann. hab einige minuten drauf gearbeitet und bin jetzt so weit: Code:
Public list As StringPublic Sub GetPolylineInfo() Dim ent As AcadEntity Dim l As AcadLine Dim p As AcadPoint Dim startp As Variant Dim endp As Variant For Each ent In ThisDrawing.ModelSpace If TypeOf ent Is AcadLine Then Set l = ent startp = l.StartPoint endp = l.EndPoint ShowCoordL startp, endp ElseIf TypeOf ent Is AcadPoint Then Set p = ent startp = p.StartPoint ShowCoordK startp End If Next MsgBox list End Sub Private Sub ShowCoordL(startp As Variant, endp As Variant) Dim i As Integer Dim x As Double Dim y As Double Dim x2 As Double Dim y2 As Double Dim index As Integer Dim coordString As String x = Math.Round(startp(i), 1) y = Math.Round(startp(i + 1), 1) x2 = Math.Round(endp(i), 1) y2 = Math.Round(endp(i + 1), 1) coordString = coordString & "L," & "x=" & x & ",y=" & y & ",x2=" & x2 & ",y2=" & y2 & vbCr i = i + 2 index = index + 1 list = list & coordString End Sub Private Sub ShowCoordK(startp As Variant) Dim i As Integer Dim x As Double Dim y As Double Dim index As Integer Dim coordString As String x = Math.Round(startp(i), 1) y = Math.Round(startp(i + 1), 1) coordString = coordString & "P," & "x=" & x & ",y=" & y & vbCr i = i + 2 index = index + 1 list = list & coordString End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 18. Feb. 2015 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für Frifer
Hallo Frifer, ist doch schon mal ein Anfang, auch wenn ich da lieber eine andere Abfrage verwende
Code:
Select case TypeOf ent case AcadLine: case AcadPoint: end select
Ist einfacher erweiterbarer Außerdem weise ich ganz gerne den Startwert (i) explizit zu. Theoretisch sollte der nach einem Dim zwar 0 sein, aber Überraschungen gibt es immer wieder mal. Für was verwendest Du den Index? Weiterhin viel Erfolg Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|