Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  STL Export und Koordinatenausgabe mit VBA

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
  
PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  STL Export und Koordinatenausgabe mit VBA (1963 mal gelesen)
wikie23
Mitglied


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

Beiträge: 4
Registriert: 21.01.2015

erstellt am: 22. Jan. 2015 07:18    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 zusammen,

ich bin bei der Suche nach einer Lösung für meine AutaCAD Probleme auf dieses super Forum gestoßen und habe mich deshalb gleich angemeldet. Haupsächlich beschäfftige ich mich beruflich mit CFD-Simulationen benötige aber zur Modelerstellung AutoCAD. Ich bin daher kein Profi im Umgang mit AutoCAD aber ein blutiger Anfänger bin ich auch nicht mehr.

Nun aber zu meinem Problem. Ich muss häufiger einige hundert Objekte als stl Datei exportieren. Bisher mache ich das immer im ersten Schritt mit AutoCAD und exportiere alle benötigten Objekte auf einmal - einzeln auswählen der Objekte fällt aufgrund der Anzahl leider aus. Nachteil daran ist das sich alle Objekte in einer stl-Datei befinden. Im nächsten Schritt zerlege ich diese stl-Datei mit einem anderen Program in einzelnen stl-Dateien. Meine Idee war nun mit Hilfe von VBA mir direkt aus AutoCAD diese Objekte einzeln als stl zu exportieren. Schön wäre dabei die stl-Datei mit einem eindeutigen Namen für jedes einzelne Objekt zu versehen. Ich habe dabei an 'Layername+Laufende Nummer.stl' gedacht. Leider bin ich mit VBA noch nicht so fit das ich trotz Suche noch nicht auf eine Lösung gekommen bin. Könnt ihr mir dabei ein kurze Hilfestellung geben.
Zusätzlich zu dieser Ausgabe würde ich auch noch die Koordinaten der exportierten 3D Objekte benötigen. Richtig geil wäre die Ausgabe in eine Excel Datei welche die Spalten x,y,z und stl-Name mit den jeweiligen objektbezogenen Einträgen enthält.

Was meint Ihr, ist das Ganze mit VBA umsetztbar? Könnt ihr mir ein paar Tipps geben wie ich an die Sache ran gehen kann und vielleicht ein paar Beispiele mit ähnlichen Problemen posten um mir eine kurze Starthilfe zu geben.

Vielen Dank im Vorraus
Roman

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 22. Jan. 2015 12:16    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 wikie23 10 Unities + Antwort hilfreich

Hallo und herzlich willkommen,

wie fundiert sind deine VBA-Kenntnisse jenseits von AutoCAD? Hapert es nur an der Unkenntnis der VBA-API des AutoCAD?

Mit VB lässt sich das sicher realisieren, sicher auch mit anderen Programmiersprachen.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wikie23
Mitglied


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

Beiträge: 4
Registriert: 21.01.2015

erstellt am: 22. Jan. 2015 13:17    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 Holger,

vielen Dank für deine schnelle Antwort. Meine VBA Kenntnisse sind noch sehr rudimentär. Ich arbeite mich gerade in dieses Thema ein. VBA sollte aber kein Problem sein, da ich zur Zeit Hilfe von einem Kollegen habe der sich mit VBA wirklich sehr sehr gut auskennt, aber keine Ahnung von AutoCAD hat.
Wenn ich ein paar Tipps für die richtige Vorgehensweise mit der VBA-API bekommen kann und den einen oder anderen VBA Befehl wenn es dann doch mal hängt, denke ich das wir das Ganze umsetzten können.

besten Dank
Roman

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: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 22. Jan. 2015 14: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 Nur für wikie23 10 Unities + Antwort hilfreich

Hallo Roman,
Soweit mir bekannt ist gibt es keine spezielle VBA-Routine zum Schreiben von STL-Dateien, Du müßtest also über den Befehl:
Code:
ThisDrawing.SendCommand "-STLOUT N " & strDateiname

gehen.
"N" bewirkt dass keine binäre Datei geschrieben wird

Davor wäre es sinnvoll den PickFirstSelectionSet (ist bereits vordefiniert) mit dem entsprechenden Objekt zu füllen, ansonsten käme eine Abfrage in der Befehlszeile zur Auswahl der Objekte.

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wikie23
Mitglied


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

Beiträge: 4
Registriert: 21.01.2015

erstellt am: 22. Jan. 2015 15:17    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 Klaus,

danke für deine Antwort.

Da ich mehrerer hundert 3D solids auf einer Zeichnung habe müsste ich diesen Befehl in eine Routine einbauen die mir jedes einzelne Objekt der Reihe nach auswählt und dann eine stl-Datei hierfür exportiert. Hast du auch noch einen Tip für mich wie ich dies berwerkställigen kann?

Besten Dank
Roman

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 22. Jan. 2015 15:54    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 wikie23 10 Unities + Antwort hilfreich

Hallo Roman,

für den Anfang kannst du dir mal die Beispiele aus deiner AutoCAD Installation ansehen, weiter gibt es jede Menge Beispiele hier im Forum.

Du überlegst dir vorher ob du wirklich alle Elemente aus dem Modelbereich oder doch erst eine Auswahl (Selectionset) treffen willst.

Dann geht's du in einer Schleife alle Elemente durch, prüfst ob die den passenden Datentyp haben, und machst deinen Export.

Oder suchtest du jemanden der es für dich umsetzt?

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wikie23
Mitglied


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

Beiträge: 4
Registriert: 21.01.2015

erstellt am: 22. Jan. 2015 16:19    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 Wilfried,

ich muss alle Elemente eines bestimmten Layers über diesen Weg exportieren.
Das mit der Schleife ist ein guter Tip.
Ich möchte auf jeden Fall das Ganze selbst umsetzten da ich daran noch weitere Veränderungen vornehmen möchte und dies nicht kann wenn ich keine Ahnung von dem Ganzen habe. Das von mir angesprochene soll mir dabei als Grundgerüst dienen, das ich dann beliebig an unsere Bedürfnisse anpassen kann. Bisher habe ich noch nichts in der Art gemacht, weshalb ich auch etwas unbeholfen bin.

besten Dank
Roman

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: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 22. Jan. 2015 17:51    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 wikie23 10 Unities + Antwort hilfreich

Hallo Roman,

Wie Du schon geschrieben hast, es ist durchaus sinnvoll sich selber mit der Problematik zu beschäftigen.
Gerade die Auswahl über SelectionSet ist nicht ganz einfach aber in der Onlinehilfe im Benutzerhandbuch "Entwicklerhandbuch für ActivX und VBA" recht gut erklärt. Solltet Ihr noch ältere Versionen installiert haben (z.B. 2008) könntest Du Dir das \Help - verzeichnis kopieren und über die acad171.chm die entsprechenden Kapitel suchen. Die neueren Online-Hilfen sind da wesentlich unübersichtlicher 

Um Dir die Programmierung ein wenig zu erleichtern:
Typische Werte für eine Auswahlbildung sind z.B.
FilterTyp "0" für die Elementauswahl mit dem zugehörigen
FilterDatenWert "3DSOLID" wie Du ihn hier verwenden möchtest

FilterTyp "8" wären zum Beispiel Layernamen, entweder als ein Wert angegeben oder als Liste mit Kommatrennung
FilterTyp "67" der Arbeitsbereich mit "0" für Modell bzw "1" für Layout

Etwas Vorsicht ist bei den Mode SelectOnScreen oder SelectWindow geboten, kann schon mal passieren dass dabei nicht alles ausgewählt wird wenn vorher der entsprechende Ausschnitt neu gezeichnet wurde. Aber Du wirst vermutlich als Mode den acSelectionSetAll verwenden.

Einen SelectionSet durchsuchen könnte man zwar auch mit einer FOR i = 0 to SelectionSet.Count ... Next Schleife möglich, üblicherweise verwendet man aber eine For each obj in Selectionset ... Next Anweisung, die auch schneller ist.

Wenn Du Problem mit dem Code hast, kannst Du ihn gerne hier einstellen. Dürften ja nur ein paar Zeilen werden 

Grüße
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)2025 CAD.de | Impressum | Datenschutz