Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  STL Export pro Volumenkörper

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
  
Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
Autor Thema:  STL Export pro Volumenkörper (3779 / mal gelesen)
aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 25. Sep. 2019 11:29    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 gerade verzweifelt auf der Suche nach einer Möglichkleit aus einem Mehrkörperbauteil mehrere STL Datein zu erzeugen(eine STL pro Volumenkörper).


Im Moment mache ich das über Komponente erstellen, dabei jeweils ein Bauteil pro Volumenkörper und dann in der neuen Baugruppe Kopie speichern unter als stl und Pro Bauteil dann eine STL Datei.

geht das nicht einfacher? Leider finde ich nichts wie ich einzele Volumenkörper aus dem Bauteil raus bekommen....


MFG Uwe

------------------
mfg Uwe

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

Leo Laimer
Moderator
CAD-Dienstleister




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

Beiträge: 26123
Registriert: 24.11.2002

IV bis 2019

erstellt am: 25. Sep. 2019 11:46    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 aquadody 10 Unities + Antwort hilfreich

Hätte gedacht dass das die Aufgabenplanung erledigen könnte.
Leider reichen meine 25 Jahre CAD-Erfahrung nicht aus um dieses witzlose Glumpert überhaupt in Gang setzen zu können, aber vielleicht geht's Dir ja besser damit.

Ich mach es immer so, dass ich alle zu bearbeitenden Dateien gleichzeitig öffne, und dann eine nach der anderen mit dem gewünschten Befehl abarbeite. Normalerweise kann man denselben Befehl nach Weiterspringen auf die nächste Datei gleich mit <Enter> wieder aufrufen, sodass das Ganze eine reine Tastaturorgie ist (viel effizienter als das Mausgefummle).

------------------
mfg - Leo

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

MacFly8
Ehrenmitglied V.I.P. h.c.
Konstrukteur Kessel- & Feuerungsbau


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

Beiträge: 2027
Registriert: 13.08.2007

HP Z17;
64GB RAM; Nvidia Quadro RTX3000;
Inventor Professional PDSU 2012/2020
Mechanical 2012/2020

erstellt am: 25. Sep. 2019 12:08    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 aquadody 10 Unities + Antwort hilfreich


Inv_komp_erstellen.jpg


Inv_Aufgabenplaner_STL.jpg

 
das mit den Volumenkörper funktioniert so....

https://knowledge.autodesk.com/de/support/inventor/learn-explore/caas/CloudHelp/cloudhelp/2018/DEU/Inventor-Help/files/GUID-6A2FC6BE-45C5-41B3-9476-848F516EBA37-htm.html

Aufgabenplaner ist ein eigentlich selbsterklärendes Tool.

MfG MacFly

------------------
- - - der Erleuchtung ist es egal wie du Sie erlangst - - -
- - - Wir leben alle unter demselben Himmel, aber wir haben nicht alle denselben Horizont - - - (K. Adenauer)

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

Leo Laimer
Moderator
CAD-Dienstleister




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

Beiträge: 26123
Registriert: 24.11.2002

IV bis 2019

erstellt am: 25. Sep. 2019 12:30    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 aquadody 10 Unities + Antwort hilfreich

Schön.
Ich halt mich jetzt aber zurück und sag nichts mehr...

------------------
mfg - Leo

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

freierfall
Ehrenmitglied V.I.P. h.c.
Techniker



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

Beiträge: 11582
Registriert: 30.04.2004

WIN10 64bit, 32GB RAM
IV bis 2022

erstellt am: 25. Sep. 2019 12:34    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 aquadody 10 Unities + Antwort hilfreich

Leo ich mach das auch so wie du  Naja 

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 25. Sep. 2019 12:41    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 aquadody 10 Unities + Antwort hilfreich

es müsste reichen, jeweils nur einen Körper sichtbar zu haben und mehrmals STL zu exportieren. -> Es landet nur der sichtbare Körper im Export.

Das ließe sich natürlich auch automatisieren (iLogic oder VBA).

------------------
Gruß KraBBy

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 25. Sep. 2019 14:27    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

Hi KraBBy,

so mach ich das auch immer gemacht, hat nur den Nachteil das ich jede erstellte STL umbenennen muß.

Ich bin etwas verwöhnt, für einfache Teile hab ich eine Ilogic Regel die das STL ablegen übernimmt, babei wird der Dateiname der STL Datei aus dem Dateinamen der Ursprungsdatei und der Beschreibung gebildet.


Wenn das mit den einzelnen Volumenkörpern nicht geht, kommt man denn per Ilogic an die Bezeichnung der Volumenkörper ran? Das würde die Manuelle Ablage etwas vereinfachen.


------------------
mfg Uwe

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

Leo Laimer
Moderator
CAD-Dienstleister




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

Beiträge: 26123
Registriert: 24.11.2002

IV bis 2019

erstellt am: 25. Sep. 2019 14:50    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 aquadody 10 Unities + Antwort hilfreich

Irgendwann wirst Du jedem Ding den richtigen Namen geben müssen.

Wenn Du die Volumenkörper richtig benannt hast, entstehen IMHO ebenso benannte Einzeldateien daraus, und dieser Dateiname wird als Vorgabe für die Exportdatei verwendet.
Sollte zumindest so sein, probiert hab ich das jetzt nicht im Detail.

------------------
mfg - Leo

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 25. Sep. 2019 15:01    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

Wenn man es über die Funktion Komponente erstellen macht dann macht das der Inventor so.

Ich fänd es toll wenn das auch gehen würde wenn ich die STL aus dem Bauteil erzeuge.

Aber es scheintz die einfachste Lösung zu sein wenn mann es über Komponente erstellen macht, dann hat man weniger klickerei.

------------------
mfg Uwe

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

MacFly8
Ehrenmitglied V.I.P. h.c.
Konstrukteur Kessel- & Feuerungsbau


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

Beiträge: 2027
Registriert: 13.08.2007

HP Z17;
64GB RAM; Nvidia Quadro RTX3000;
Inventor Professional PDSU 2012/2020
Mechanical 2012/2020

erstellt am: 25. Sep. 2019 15:12    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 aquadody 10 Unities + Antwort hilfreich

Zitat:
Ich halt mich jetzt aber zurück und sag nichts mehr...

Zitat:
Irgendwann wirst Du jedem Ding den richtigen Namen geben müssen.

Wenn Du die Volumenkörper richtig benannt hast, entstehen IMHO [In my humble opinion (Meiner Meinung nach)] ebenso benannte Einzeldateien daraus, und dieser Dateiname wird als Vorgabe für die Exportdatei verwendet.
Sollte zumindest so sein, probiert hab ich das jetzt nicht im Detail.


Da ging es darum aus dem multibodypart zu exportieren und da bekommen die alle den Namen des Multibodypart 

Bei uns sind die Volumenkörper nach folgendem Schema benannt.

MultibodypartName_VK_fortlaufendeNummer
dafür habe ich ne Ilogic Regel

Nach dem benutzen von "Komponente erstellen" die entstandene Baugruppe mit X Teilen speichern.
Anschließend Aufgabenplannung mit STL export.
Hat gerade mit einem Multibodypart mit 40 Volumenkörpern ca. 15min gedauert.

MfG MacFly

------------------
- - - der Erleuchtung ist es egal wie du Sie erlangst - - -
- - - Wir leben alle unter demselben Himmel, aber wir haben nicht alle denselben Horizont - - - (K. Adenauer)

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 25. Sep. 2019 19:21    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 aquadody 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von aquadody:
Ich bin etwas verwöhnt, für einfache Teile hab ich eine Ilogic Regel die das STL ablegen übernimmt, babei wird der Dateiname der STL Datei aus dem Dateinamen der Ursprungsdatei und der Beschreibung gebildet.

Wenn das mit den einzelnen Volumenkörpern nicht geht, kommt man denn per Ilogic an die Bezeichnung der Volumenkörper ran? Das würde die Manuelle Ablage etwas vereinfachen.



-> Eine (neue) iLogic Regel, die alle STLs abspeichert und dabei die Benennung automatisch anpasst. Das meine ich ja mit Automatisierung.
Die Benennung der Volumen lässt sich natürlich auslesen.

Heute mittag habe ich das mal in VBA zusammen gebastelt. Kannst du das brauchen? Oder muss es iLogic sein?
Ggf ist es sinnvoll, wenn ich auf deinem iLogic Code aufsetze, damit die Benennung etc. an deine Wünsche angelehnt wird.

------------------
Gruß KraBBy

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 25. Sep. 2019 21:36    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

Hi KraBBy,

das klingt ja genial, VBA ist gut.

Ilogic wäre etwas angenehmer da müssen die Kollegen sich weniger umgewöhnen...    

------------------
mfg Uwe

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 26. Sep. 2019 07:52    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 aquadody 10 Unities + Antwort hilfreich

wie angedroht...
Code:
Sub IPT_Multibody_Export_STL_Main()
' KraBBy 25.09.2019
    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.ActiveDocument
   
    'Sichtbarkeitsstatus aller Körper merken
    'auch alle unsichtbar schalten
    Dim i As Long, iMax As Long
    iMax = oDoc.ComponentDefinition.SurfaceBodies.Count
    Dim abVisible() As Boolean  'Array mit dem Sichtbarkeitsstatus
    ReDim abVisible(1 To iMax)
    Dim oBody As SurfaceBody
    For i = 1 To iMax
        Set oBody = oDoc.ComponentDefinition.SurfaceBodies(i)
        If oBody.Visible Then
            abVisible(i) = True
            oBody.Visible = False  'unsichtbar schalten
        Else
            abVisible(i) = False
        End If
    Next i
    'jetzt ist alles unsichtbar
   
    'Export der einzelnen Volumen
    For i = 1 To iMax
        Set oBody = oDoc.ComponentDefinition.SurfaceBodies(i)
        If abVisible(i) Then
            oBody.Visible = True 'sichtbar schalten
            Call ExpSTL_mitDatname(oDoc, oBody.Name)    '-> Export
            oBody.Visible = False 'wieder unsichtbar
        End If
    Next i
   
    'Sichtbarkeitsstatus wiederherstellen
    For i = 1 To iMax
        Set oBody = oDoc.ComponentDefinition.SurfaceBodies(i)
        If abVisible(i) Then oBody.Visible = True 'sichtbar schalten
    Next i
   
    'Schlussmeldung
    MsgBox "STL Datei(en) erzeugt", vbInformation, "Fertig"
   
End Sub

Private Sub ExpSTL_mitDatname(oDoc As PartDocument, sSuffix As String)
' Bildung von Dateiname und Pfad (als Konstante)
' Aufruf der Export-Prozedur

    Dim sPfad As String
    sPfad = "C:\Temp\"
   
    Dim sName As String
    sName = oDoc.DisplayName
    sName = sName & "_" & sSuffix 'Suffix (Name des Volumens) anhängen
    sName = clear_DatName(sName) 'Dateiname bereinigen
   
    'Prüfung, ob die Datei schon existiert fehlt evtl.!
   
    Call ExportToSTL(sPfad, sName, oDoc)
   
End Sub


und noch die Funktionen/Subs die ich schon in Verwendung habe und oben aufrufe

Code:
Private Function clear_DatName(str As String) As String
    ' wandelt einen gegebenen Text in einen "konformen Text"
    ' dieser neue Wert wird zurückgegeben
   
    Dim name_alt As String
    Dim name_neu As String
   
    name_alt = str
   
    name_neu = Replace(name_alt, " ", "_")      'alle Leerz. ersetzen
    'name_neu = Replace(name_neu, "-", "_")      'Bindestriche ersetzen
    name_neu = Replace(name_neu, ".", "_")      'Punkte ersetzen
    name_neu = Replace(name_neu, ",", "_")
    name_neu = Replace(name_neu, "ä", "ae")    'Umlaute...
    name_neu = Replace(name_neu, "Ä", "Ae")
    name_neu = Replace(name_neu, "ö", "oe")
    name_neu = Replace(name_neu, "Ö", "Oe")
    name_neu = Replace(name_neu, "ü", "ue")
    name_neu = Replace(name_neu, "Ü", "Ue")
    name_neu = Replace(name_neu, "ß", "ss")
   
    name_neu = Replace(name_neu, "^", "_")
    name_neu = Replace(name_neu, "°", "_")
    name_neu = Replace(name_neu, """", "_")    'Anführungszeichen (")
    'name_neu = Replace(name_neu, "§", "_")
    'name_neu = Replace(name_neu, "$", "_")
    'name_neu = Replace(name_neu, "%", "_")
    'name_neu = Replace(name_neu, "&", "_")
    name_neu = Replace(name_neu, "/", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, "\", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, "=", "_")
    name_neu = Replace(name_neu, "?", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, "*", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, "~", "_")
    name_neu = Replace(name_neu, "<", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, ">", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, "|", "_")  ' nicht für Dateinamen zugelassen
    name_neu = Replace(name_neu, ":", "_")  ' nicht für Dateinamen zugelassen
   
    name_neu = Replace(name_neu, "[", "(")
    name_neu = Replace(name_neu, "]", ")")
   

    dErsetzen name_neu 'Sub, doppelte __ ersetzen, rekursiv
   
    'Rückgabewert
    clear_DatName = name_neu
   
End Function

Private Sub dErsetzen(ByRef txt)
' doppelte Unterstriche "__" werden durch einfache "_" ersetzt
' rekursiv
    If Not (0 = InStr(txt, "__")) Then
        txt = Replace(txt, "__", "_")  'doppelte __ ersetzen
    End If
    If Not (0 = InStr(txt, "__")) Then dErsetzen txt 'Rekursion
End Sub

Private Sub ExportToSTL(Optional sPfad As String, Optional sDatName As String, Optional oDok As Document)

' Option Item          Type Default Value  Supporting Translators
' "OutputFileType"      int  0 (Binary)      STL
' "ExportUnits"        int  4 (Centimeter)  STL    'hier 5 (mm) setzen!
' "ExportFileStructure" int  0 (One File)    STL
' "Resolution"          int  1 (Medium)      STL    'hier 0 (high) setzen!
' "SurfaceDeviation"    int  N/A            STL
' "NormalDeviation"    int  N/A            STL
' "MaxEdgeLength"      int  N/A            STL
' "AspectRatio"        int  N/A            STL
' "AllowMoveMeshNode"  Bool False          STL

' Values:
' OutputFileType  BINARY = 0    ASCII = 1
' ExportUnits INCH = 2  FOOT = 3  CENTIMETER = 4  MILLIMETER = 5  METER = 6  MICRON = 7
' ExportFileStructure  ONE FILE = 0      ONE FILE PER PART INSTANCE = 1
' Resolution HIGH = 0  MEDIUM = 1  LOW = 2  Custom = 3
' SurfaceDeviation  Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.
' NormalDeviation  Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.
' MaxEdgeLength    Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.
' AspectRatio      Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.


If "" = sPfad Then
    sPfad = "C:\Temp\"
    sDatName = "temptest"
End If

If oDok Is Nothing Then  'wenn referenz nicht übergeben wird (weil optional)
    Set oDok = ThisApplication.ActiveDocument
End If

    ' Get the translator Add-In.
    Dim oSTLTranslator As TranslatorAddIn
    Set oSTLTranslator = ThisApplication.ApplicationAddIns.ItemById("{533E9A98-FC3B-11D4-8E7E-0010B541CD80}")
          ' aus Überwachung von "ThisApplication.ApplicationAddIns" raus gesucht
          ': ClassIdString : "{533E9A98-FC3B-11D4-8E7E-0010B541CD80}"

    If oSTLTranslator Is Nothing Then
        MsgBox "Could not access STL translator."
        Exit Sub
    End If

    Dim oContext As TranslationContext
    Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
    Dim oOptions As NameValueMap
    Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
    If oSTLTranslator.HasSaveCopyAsOptions(oDok, oContext, oOptions) Then

        oOptions.Value("ExportUnits") = 5      'mm
        oOptions.Value("Resolution") = 0        'high
        oOptions.Value("OutputFileType") = 0    'binary
        oOptions.Value("ExportFileStructure") = 0  'one file

        oContext.Type = kFileBrowseIOMechanism

        Dim oData As DataMedium
        Set oData = ThisApplication.TransientObjects.CreateDataMedium
        oData.Filename = sPfad & sDatName & ".stl"
       
        'Export
        On Error Resume Next
        Call oSTLTranslator.SaveCopyAs(oDok, oContext, oOptions, oData)
       
        'Schlussmeldung bzw. Fehlerbehandlung
        If Err.Number = 0 Then
            'MsgBox "Export erfolgt" & vbCrLf & oData.filename, vbInformation, "STL Fertig"
        Else
            MsgBox "Fehler bei STL:" & vbCrLf & Err.Description, vbCritical, "Fehler:" & Err.Number
        End If
    End If
   
        'Aufräumen
    Set oSTLTranslator = Nothing
    Set oContext = Nothing
    Set oOptions = Nothing
    Set oData = Nothing
End Sub


------------------
Gruß KraBBy

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 26. Sep. 2019 08:35    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 aquadody 10 Unities + Antwort hilfreich

vielleicht sollte ich auch noch ein par erklärende Worte zum Code oben verlieren:

  • Es werden nur die Volumenkörper exportiert, die beim Makrostart sichtbar sind.
  • Da das Makro die Sichtbarkeiten der Volumen hin u. her schaltet, wird die Datei "dirty" und möchte gespeichert werden.
  • die STLs werden unter einem fixen Pfad abgelegt -> "C:\temp\" im Sub ExpSTL_mitDatname
    das könnte man natürlich noch anpassen, ggf. auch abhängig vom Speicherort der IPT.
  • Als Dateiname habe ich willkürlich folgenden Aufbau gewählt: [DisplayName]_[Name Volumen].stl
  • Der Dateiname wird "bereinigt" (Function clear_DatName), dabei werden nicht erlaubte Zeichen durch Unterstriche ersetzt. Es werden auch Umlaute und Leerzeichen ersetzt. Könnte sein, dass Dir das zu weit geht.
  • Es wird nicht geprüft, ob die Datei schon existiert. ggf. wird überschrieben!
  • Man könnte das ganze noch ergänzen, abhängig von Deinem Workflow. z.B. Pfad am Ende im Dateiexplorer öffnen; Dateien einzeln oder gemeinsam zippen (falls sie versendet werden)

------------------
Gruß KraBBy

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 26. Sep. 2019 12:25    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

Moin Moin,

sehr geil, genau das was ich gesucht hab.....das hätte ich so nie hinbekommen 


Vielen dank.

------------------
mfg Uwe

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 30. Sep. 2019 08:04    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

Moin Moin,

was müsste ich denn am Macro ändern um die STL Datei im gleichen Pfad der orginaldatei ab zu legen?

Wenn ich bei "sPfad" "ThisDoc.Path\" eintrage dann erstell er mir nen Ordner mit dem Namen ThisDoc.Path...ohne  "\" packt er ThisDoc.Path in den Dateinamen....

------------------
mfg Uwe

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

Lothar Boekels
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3835
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2024
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 30. Sep. 2019 08:40    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 aquadody 10 Unities + Antwort hilfreich

Hi Uwe,

Das ist hier ja auch kein iLogic, sondern VBA.

Da kannst Du mit der Funktion hier den Pfad ermitteln:

Code:

Public Function FilePath(ByVal sFullFilename As String) As String
   
    Dim iStart As Long
   
    iStart = InStrRev(sFullFilename, "\", -1, vbTextCompare)
    FilePath = Mid$(sFullFilename, 1, iStart)

End Function


Aufrufen kannst Du die Funktion mit:

Code:

  Dim sFilePath As String
  sFilePath = FilePath(ThisApplication.ActiveDocument.FullFileName)

------------------
mit freundlichem Gruß
aus der Burggemeinde Brüggen
Lothar Boekels

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 721
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 30. Sep. 2019 09: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 aquadody 10 Unities + Antwort hilfreich

Im Sub ExpSTL_mitDatname(...) folgende beide Zeilen
  Dim sPfad As String
  sPfad = "C:\Temp\"

ersetzen durch:

Code:
Dim sPfad As String, s As String
    s = oDoc.fullFilename    'Dateiname inkl. Pfad
    sPfad = Left(s, InStrRev(s, "\")) 'alles links vom letzten "\" -> nur Pfad

Edit: ist im Grunde das gleiche, was Lothar vorschlägt (ich war nur zu langsam, deshalb die Überschneidung)
------------------
Gruß KraBBy

[Diese Nachricht wurde von KraBBy am 30. Sep. 2019 editiert.]

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 05. Nov. 2019 11:35    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

Wow, super.

Das ist jetzt wirklich genau so wie ies sein soll.

Vielen Dank.

------------------
mfg Uwe

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)2024 CAD.de | Impressum | Datenschutz