Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Liste von linien exportieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von Frifer an!   Senden Sie eine Private Message an Frifer  Schreiben Sie einen Gästebucheintrag für Frifer

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 16. Feb. 2015 11:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frifer 10 Unities + Antwort hilfreich

Ist machbar ... in VBA oder in LISP

Befehl Liste liefert auch schon einiges ....

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frifer 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Frifer an!   Senden Sie eine Private Message an Frifer  Schreiben Sie einen Gästebucheintrag für Frifer

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 String

Public 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



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frifer 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz