Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  iLogic - STL von allen geöffneten Dateien

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:  iLogic - STL von allen geöffneten Dateien (1251 mal gelesen)
guentam
Mitglied
Konstrukteurin


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

Beiträge: 89
Registriert: 26.03.2007

Inventor 2016.2.5
AutoCad 2016
3ds Max Design 2016
Pro.File 8.6
Windows 7 64 bit SP1

erstellt am: 25. Sep. 2017 10: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

Hallo zusammen 

ich habe eine iLogic Regel zum erstellen von STL Daten die auch funktioniert.
Der Nachteil bei der Regel ist das ich für jede Datei die ich gerade geöffnet habe die Regel anstoßen muss.

iLogic - STL erstellen:

sTLname = ThisDoc.ChangeExtension(".stl")
Dim oTranslator As TranslatorAddIn
oTranslator = ThisApplication.ApplicationAddIns.ItemById("{533E9A98-FC3B-11D4-8E7E-0010B541CD80}")
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
If oTranslator.HasSaveCopyAsOptions (ThisApplication.ActiveDocument, oContext, oOptions) Then
oOptions.Value("ExportUnits") = 5 'Millimeter
oOptions.Value("Resolution") = 0 'High
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oData As DataMedium
oData = ThisApplication.TransientObjects.CreateDataMedium
oData.FileName = sTLname
oTranslator.SaveCopyAs(ThisApplication.ActiveDocument, oContext, oOptions, oData)
End If


Jetzt habe ich mir überlegt das es gut wäre eine iLogic Regel zu haben die von allen geöffneten Dateien eine STL erstellt.

Hier wäre mein Regel dazu aber leider funktioniert sie nicht wie gedacht, kann mir hier jemand weiter helfen?

iLogic - STL für alle geöffneten Dateien:

Dim Doc As Document

For Each Doc In ThisApplication.Documents
    Doc.Activate
    ' Get the STL translator Add-In.
    Dim oSTLTranslator As TranslatorAddIn
    oSTLTranslator = ThisApplication.ApplicationAddIns.ItemById("{90AF7F40-0C01-11D5-8E83-0010B541CD80}")

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

    Dim oContext As TranslationContext
    oContext = ThisApplication.TransientObjects.CreateTranslationContext
    Dim oOptions As NameValueMap
    oOptions = ThisApplication.TransientObjects.CreateNameValueMap
    If oSTLTranslator.HasSaveCopyAsOptions(ThisApplication.ActiveDocument, oContext, oOptions) Then
        ' Set application protocol.
        ' 2 = AP 203 - Configuration Controlled Design
        ' 3 = AP 214 - Automotive Design
        oOptions.Value("ApplicationProtocolType") = 3

        ' Other options...
        'oOptions.Value("Author") = ""
        'oOptions.Value("Authorization") = ""
        'oOptions.Value("Description") = ""
        'oOptions.Value("Organization") = ""

        oContext.Type = kFileBrowseIOMechanism
             
        Dim oDoc As Document
        oDoc = ThisApplication.ActiveDocument
        Dim strName As String
        Dim strNumber As String
        strName = oDoc.PropertySets.Item("Design Tracking Properties").Item("Description").Value
        strNumber = oDoc.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value
     
        Dim oData As DataMedium
        oData = ThisApplication.TransientObjects.CreateDataMedium
        oData.FileName = "C:\profilearbeitsverz\Inventor\Daten" & strNumber & " - " & strName & ".stl"

        Call oSTLTranslator.SaveCopyAs(ThisApplication.ActiveDocument, oContext, oOptions, oData)
    End If
Next

Liebe Grüße aus Hof

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: 635
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 25. Sep. 2017 15:07    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 guentam 10 Unities + Antwort hilfreich

die Regel unten sollte funktionieren. Ich habe Deine funktionierende Regel verwendet und in das Sub exp_STL gepackt. Im Sub Main ist dann nur die Schleife, die durch die geöffneten Dateien läuft.

Mit Deinem 2. Code-Abschnitt habe ich mich nicht befasst.

Code:

'STLs erstellen
' alle geöffneten Parts - im ArbeitsSpeicher reicht!!!
' muss nicht explizit in eigenem Fenster geöffnet sein

Sub Main
Dim obj
Dim iCount As Integer: iCount = 0
For Each obj In ThisApplication.Documents
If TypeOf obj Is partdocument Then
Call exp_stl(obj)
iCount = iCount + 1
End If
Next
MsgBox("STL-Dateien erzeugt:" & vbCrLf & iCount, vbOKOnly, "Fertig")
End Sub

Sub exp_STL (oDoc as partdocument)
'sTLname = odoc.ChangeExtension(".stl") -> diese Eigenschaft gibt es wohl nicht
sTLname = Replace(oDoc.FullFileName, ".ipt", ".stl")
Dim oTranslator As TranslatorAddIn
oTranslator = ThisApplication.ApplicationAddIns.ItemById("{533E9A98-FC3B-11D4-8E7E-0010B541CD80}")
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
If oTranslator.HasSaveCopyAsOptions (oDoc, oContext, oOptions) Then
oOptions.Value("ExportUnits") = 5 'Millimeter
oOptions.Value("Resolution") = 0 'High
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
Dim oData As DataMedium
oData = ThisApplication.TransientObjects.CreateDataMedium
oData.FileName = sTLname
oTranslator.SaveCopyAs(oDoc, oContext, oOptions, oData)
End If
End Sub


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

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

guentam
Mitglied
Konstrukteurin


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

Beiträge: 89
Registriert: 26.03.2007

Inventor 2016.2.5
AutoCad 2016
3ds Max Design 2016
Pro.File 8.6
Windows 7 64 bit SP1

erstellt am: 25. Sep. 2017 16: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

Vielen Dank für die schnelle Hilfe.
Regel funktioniert super allerdings macht er von einer IAM auch alle Einzelteile was ja gut ist aber von der IAM selbst benötige ich dann auch eine STL.

Lässt sich das auch Regeln?

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: 635
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 25. Sep. 2017 18: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 guentam 10 Unities + Antwort hilfreich

Stl von iam geht natürlich auch. Unten die Anpassungen, aber ohne das getestet zu haben!

Code:
...
For Each obj In ThisApplication.Documents
If TypeOf obj Is partdocument _
Or typeof obj Is assemblydocument Then
Call exp_stl(obj)
...

Sub exp_STL (oDoc as Document)   'geändert!
'sTLname = odoc.ChangeExtension(".stl") -> diese Eigenschaft gibt es wohl nicht
sTLname = Replace(oDoc.FullFileName, ".ipt", ".stl")
sTLname = Replace(sTLname, ".iam", ".stl") 'Zeile hinzu!
Dim ...


[Edit: habs jetzt ausprobiert -> Fehler in der Zeile "sTLname = ..." korrigiert]

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

[Diese Nachricht wurde von KraBBy am 26. Sep. 2017 editiert.]

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

guentam
Mitglied
Konstrukteurin


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

Beiträge: 89
Registriert: 26.03.2007

Inventor 2016.2.5
AutoCad 2016
3ds Max Design 2016
Pro.File 8.6
Windows 7 64 bit SP1

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

Vielen lieben Dank dafür, klappt super 

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