Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo

15.01.2019

VBA/iLogic: Auf Zeichnung Abwicklung und skizziertes Symbol einfügen wenn Erstansicht ein Blechteil ist

blech

iLogic-Code

Imports Inventor.ViewOrientationTypeEnum
Imports Inventor.DrawingViewStyleEnum

Sub Main()
    Dim Zeich As DrawingDocument
     Zeich = ThisApplication.ActiveDocument
    
    Dim oSheet As Sheet
     oSheet = Zeich.ActiveSheet
    'Modell er esten Ansicht ermitteln
    Dim Modell As Document
     Modell = oSheet.DrawingViews.Item(1).ReferencedDocumentDescriptor.ReferencedDocument
    
    'Prüfen ob Modell Blechteil ist
    Dim sDocumentSubType As String
    sDocumentSubType = Modell.SubType
    
    If sDocumentSubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        'Abwicklungsansicht erstellen
         AddFlatPatternDrawingView (Modell.FullFileName)
         
         'Symbol ergänzen
         Dim SymName As String
         SymName = "CAD-CAM"
        Dim oSketchedSymbolDef As SketchedSymbolDefinition
         oSketchedSymbolDef = Zeich.SketchedSymbolDefinitions.Item(SymName)
        
        Dim oTG As TransientGeometry
         oTG = ThisApplication.TransientGeometry
        
        Dim oSketchedSymbol As SketchedSymbol
         oSketchedSymbol = Zeich.ActiveSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(15, 5), 0, 1)
         
    Else
     Exit Sub
    End If
    
End Sub

Public Sub AddFlatPatternDrawingView(Modellpfad As String)
    '  a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
     oDrawDoc = ThisApplication.ActiveDocument

    ' a reference to the active sheet.
    Dim oSheet As Sheet
     oSheet = oDrawDoc.ActiveSheet

    ' Create a new NameValueMap object
    Dim oBaseViewOptions As NameValueMap
     oBaseViewOptions = ThisApplication.TransientObjects.CreateNameValueMap

    '  the options to use when creating the base view.
    Call oBaseViewOptions.Add("SheetMetalFoldedModel", False)

    ' Open the sheet metal document invisibly
    Dim oModel As Document
     oModel = ThisApplication.Documents.Open(Modellpfad, False)

    ' Create the placement point object.
    Dim oPoint As Point2d
     oPoint = ThisApplication.TransientGeometry.CreatePoint2d(25, 20)

    ' Create a base view.
    Dim oBaseView As DrawingView
     oBaseView = oSheet.DrawingViews.AddBaseView(oModel, oPoint, 0.3, _
    kDefaultViewOrientation, kHiddenLineRemovedDrawingViewStyle, _
    , , oBaseViewOptions)
End Sub

VBA-Code

Private Sub WennBlechDannAbwicklung()
    Dim Zeich As DrawingDocument
    Set Zeich = ThisApplication.ActiveDocument
    
    Dim oSheet As Sheet
    Set oSheet = Zeich.ActiveSheet
    'Modell er esten Ansicht ermitteln
    Dim Modell As Document
    Set Modell = oSheet.DrawingViews.Item(1).ReferencedDocumentDescriptor.ReferencedDocument
    
    'Prüfen ob Modell Blechteil ist
    Dim sDocumentSubType As String
    sDocumentSubType = Modell.SubType
    
    If sDocumentSubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        'Abwicklungsansicht erstellen
         AddFlatPatternDrawingView (Modell.FullFileName)
         
         'Symbol ergänzen
         Dim SymName As String
         SymName = "CAD-CAM"
        Dim oSketchedSymbolDef As SketchedSymbolDefinition
        Set oSketchedSymbolDef = Zeich.SketchedSymbolDefinitions.Item(SymName)
        
        Dim oTG As TransientGeometry
        Set oTG = ThisApplication.TransientGeometry
        
        Dim oSketchedSymbol As SketchedSymbol
        Set oSketchedSymbol = Zeich.ActiveSheet.SketchedSymbols.Add(oSketchedSymbolDef, oTG.CreatePoint2d(0, 0), 0, 1)
         
    Else
     Exit Sub
    End If
    
End Sub

Public Sub AddFlatPatternDrawingView(Modellpfad As String)
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    'Set a reference to the active sheet.
    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet

    ' Create a new NameValueMap object
    Dim oBaseViewOptions As NameValueMap
    Set oBaseViewOptions = ThisApplication.TransientObjects.CreateNameValueMap

    ' Set the options to use when creating the base view.
    Call oBaseViewOptions.Add("SheetMetalFoldedModel", False)

    ' Open the sheet metal document invisibly
    Dim oModel As Document
    Set oModel = ThisApplication.Documents.Open(Modellpfad, False)

    ' Create the placement point object.
    Dim oPoint As Point2d
    Set oPoint = ThisApplication.TransientGeometry.CreatePoint2d(25, 20)

    ' Create a base view.
    Dim oBaseView As DrawingView
    Set oBaseView = oSheet.DrawingViews.AddBaseView(oModel, oPoint, 1, _
    kDefaultViewOrientation, kHiddenLineRemovedDrawingViewStyle, _
    , , oBaseViewOptions)
End Sub

Bemerkungen

Das ist natürlich nur ein grobes Codegerüst:

  • Hat das Blech noch keine Abwicklung scheitert der Code. Da müsste man ggf. prüfen, ob eine Abwicklung vorhanden ist und wenn nicht dann eine erstellen
  • Der Ansichtsmaßstab der Abwicklung und deren Position auf dem Blatt müsste abhängig von der Blechgröße und Blattgröße noch ermittelt werden
  • ggf. muss die Position des Symbols angepasst werden

Links zum Thema

VBA Code in iLogic Code "umwandeln"

[Quelle]

11.01.2019

Kostenloses Tool: 1-Klick Pack, Zip und Go (Tool / Toolbox)

imageUpdate 12.1.19: Jetzt wahlweise Pack, Zip & Go mit oder ohne Ordnerstruktur

Inventormodelle haben i.d.R. eine Dateienstruktur, bestehen also aus unterschiedlichen Dateien (IPT, IAM, IDW, DWG) die sich referenzieren. Eine Baugruppe ohne ihre Komponenten ist recht nutzlos, weil leer. Mehr dazu hier: Inventor Dateiablage verstehen: Die Basics.

Da es manchmal nicht einfach ist, alle Dateien zu finden, die zu einer Inventorstruktur gehören, hat Autodesk das Tool "Pack&Go" entwickelt, das die Komponente einer Baugruppe zusammensucht. Wie Pack&Go funktioniert, habe ich hier beschrieben: Inventor Datenpaket sammeln und verschicken (Pack&Go). Pack&Go ist leistungsfähig und macht, was es soll gut und zuverlässig. Aber manchmal ist es zu umständlich und langsam.

Deswegen habe ich ein kleines externen Programm geschrieben, das mit einem Klick alle Dateien einer Baugruppe oder Zeichnung zusammensucht (optional auch die gleichnamigen Zeichnungen zu den Komponenten).

Was macht Quick & Dirty Pack, Zip & Go?

  • Quick: Datei in Inventor öffnen, Tool starten, Button anklicken – Fertig!
  • Dirty: NEU: Es kann wahlweise mit oder ohne Ordnerstruktur kopiert werden
    Es wird dir komplette Ordnerstruktur entfernt, d.h. alle Dateien laden in einem Verzeichnis. Ein Ordner, alle Dateien (das bringt aber auch ein paar Einschränkungen mit!)
  • Pack: Alles wird zusammen gesucht, auf Wunsch auch die Zeichnungen zu den Komponenten einer Baugruppe.
  • Zip: Die in den Exportordner kopierten Dateien werden automatisch gezippt.
  • Go: Ist der Prozess abgeschlossen, kann einfach auf den Ordner und die Zip-Datei zugegriffen werden.

So funktioniert's

  1. Datei, von der die abhängigen Dateien zusammengesucht werden sollen, im Inventor öffnen.

    image

  2. Tool starten. Dazu entweder
    1. die PackZipGo.exe starten

      image
    2. oder wer die Inventor FAQ Toolbox nutzt, geht über das Minimenü in das Register Allgemein und dort auf den entsprechenden Befehl

      image

  3. Das Programm öffnet sich und fängt sofort an, die aktive Datei im Inventor zu analysieren.

    image

  4. Optional: Unten den Haken bei "Gleichnamige Zeichnungen einschließen" setzen, damit zu den Komponenten im oberen Fenster auch deren Zeichnungen (Regel: Zeichnungsname = Modellname, also z.B. platte.ipt = platte.idw)

  5. Zum Start Kopiervorgang starten oder Kopiervorgang mit Ordnerstruktur starten anklicken. Der Kopierprozess startet. Kopiert wird immer in das Temp-Verzeichnis (%temp%) in ein Unterverzeichnis mit dem Namen der Hauptkomponente und Datum/Uhrzeit, also z.B. bei mir C:\Users\juergen\AppData\Local\Temp\Reciprocating Saw FINAL.iam_190111200211086

    image
    Zusätzlich wird er Ordner gezippt. Die Dateidatei landet direkt im Temp-Verzeichnis. Dateiname = Ordnername also z.B. C:\Users\juergen\AppData\Local\Temp\Reciprocating Saw FINAL.iam_19011120021221.zip

    image
  6. Ist der Prozess fertig, öffnet sich ein weiteres Fenster, in dem die Pfad zu sehen sind und über das der Ordner im Explorer geöffnet werden.
    Über den Button "ZIP-Pfad in Zwischenablage kopieren" kann der Pfad zur ZIP-Datei in die Zwischenablage kopiert werden. So lässt sich die ZIP schnell in ein Internet Forum hochladen oder per Mail verschicken.

    Ein Klick auf "Beenden" schließt das komplette Programm.

    image

Optional

Soll die aktive Inventordatei neu eingelesen werden, dann auf den Knopf "Aktuelle Inventordatei einlesen" anklicken. Die Listen unten werden geleert und mit den Informationen dem im Inventor aktiven Fenster befüllt.

image

Einschränkungen und Grenzen

  1. Neu:  Gilt nur bei der Funktion Kopiervorgang starten, entfällt bei der Funktion Kopiervorgang mit Ordnerstruktur starten: Alles wird in einen Ordner kopiert. Das macht die Sache übersichtlich und gerade für Analysten einfacher aber…Sollte die Baugruppe gleichnamige Dateien enthalten, die in verschiedenen Ordnern gespeichert sind, gibt es natürlich das Problem, das diese 2 verschiedenen Dateien jetzt in einem (1) Ordner gespeichert werden können.
    Beispiel: collar.ipt liegt in 2 verschiedenen Ordnern:

    image

    Wird der Prozess gestartet und das Tool erkennt, dass eine Datei bereits im Zielordner existiert, wird ein Ordner Doublette angelegt und die Datei mit identischem Namen dort hin kopiert. Das ist aber nur eine Notlösung, den die IAM wird bei Öffnen nicht wissen, welche Datei sie nun verwenden soll! Aber: Man sollte auch darauf achten eindeutige Dateinamen zu verwenden!

    image

  2. Das Tool ist hauptsächlich geeignet, um kleiner Baugruppen und Zeichnungen z.B. für den Support in Foren und Hotlines zusammenzustellen. Zur Weitergabe einer Konstruktion an einen Auftraggeber sollte Pack&Go verwendet werden, da dabei die Ordnerstruktur wichtig ist!

Tipps

Upload der ZIP-Datei in ein Forum

  1. Export erstellen
  2. ZIP-Dateipfad in die Zwischenablage kopieren über den Button
    image
  3. Pfad im Uploaddialog einfügen
    image


Download (enthalten sind: Tool FileInator, MakrobatchTool  und Quick & Dirty Pack, Zip & Go)

Einrichtung: Ordner in der ZIP-Datei an gewünschte Stelle entpacken und nach Anleitung oben vorgehen

Das Programm ist ein Privatprojekt von mir und hat nichts mit Mensch und Maschine zu tun. Das Logo habe ich aus Loyalität zu meinem Arbeitgeber reingemacht. Der Hinweis nur, dass klar ist, dass der MUM Support oder euer CAD-Techniker KEINEN SUPPORT für das Programm machen muss!

Hilfe

Wer Unterstützung braucht, bitte die Kommentarfunktion hier im Blog nutzen.

Toolbox

Das Programm ist auch im Toolboxverzeichnis enthalten. Allgemeine Infos zur Inventor Toolbox gibt’s hier | Alle Beiträge zu den Toolbox-Funktionen

Alle Tools von mir findest du hier

imageCopyrightinfo

Meine Arbeit unterstützen?

Ich leben schon in gesicherter Armut, wenn dir also das Programm gefällt, wird sich das Tierschutzheim Biberach über eine kleine Spende freuen!

Tierschutzverein im Landkreis Biberach e. V.
Kreissparkasse Biberach
IBAN: DE66654500700000053538
BIC: SBCRDE66

10.01.2019

iLogic Regel automatisch beim Speichern ausführen [Tool] [Update 3]

Update 10.1.2019: Das Tool ist veraltet. Ersatz gibt es in der Inventor FAQ Toolbox (nur für MUM Kunde verfügbar): Beim Speichern einer Inventordatei (inkl. Komponenten bei Baugruppen) eine externe iLogicregel ausführen (Toolbox).

Seit Inventor 2018 gibt es auch einen global definierbaren Regelauslöser. Siehe dazu  Inventor-Programmcode (iLogic und VBA) abspeichern und ausführen (lassen) – Möglichkeiten und Fallstricke


Update 6.3.2013: Das Tool sollte auch unter Inventor 2013 funktionieren. Die 2012-Version aus dem Download unten installieren, den Inventor einmal starten und schließen und dann die REG-Datei ausführen.

image

Update 1.7.2011: Jetzt auch für Inventor 2012! Downloadlink geändert.

Unser Azubi Markus hat ein weiteres Plug-In für den Inventor programmiert: das iLogic Run on Save Tool für Inventor 2010 & 2011 & 2012 (32- & 64-Bit). Das Tool führt beim Speichern eine Externe Regel mit dem Namen des gespeicherten Dokumenttyps (IPT,IAM,IDW,IPN) aus. Anders als beim “Ereignisauslöser” muss der Auslöser nicht in der eigentlichen Datei definiert sein. Das Tool führt die externe Regel deren Namen=Dateiendung ist aus, wenn gespeichert wird.

Installation

  1. Programm als ZIP Datei herunterladen. http://goo.gl/HljZo (share jetzt über Dropbox, hoffe, das klappt jetzt für alle!)
  2. Inventor schließen, RAR Datei öffnen und die gewünschte Version doppelklicken

    image
  3. Den angegeben Pfad beibehalten und installieren

    image
  4. Unter Extras > Zusatzmodule kann im Inventor geprüft werden, ob das Tool korrekt installiert und registriert wurde.

    image
Einrichtung
für jeden gewünschten Dokumenttyp (IPT, IAM, IDW, DWG, IPN) eine externe Regel mit dem Namen=Dateiendung erstellen. Bei einer Regel für eine IPT als eine externe Regel mit Namen IPT erstellen.
image
image
Wird nun ein Bauteil gespeichert, führt das iLogic Run on Save Tool die externe iLogic-Regel mit dem Regelnamen = Dateiendung aus. Sollte zu einem Dokumenttyp keine Regel existieren passiert nichts.
Das Tool wird “as is” zur Verfügung gestellt und beinhaltet keinen Support oder sonstige Unterstützung. Feedback bitte direkt an den Kollegen Markus oder als Kommentar hier im Beitrag.
Wer wissen will, was iLogic ist und was es kann, der kann hier mehr erfahren.

09.01.2019

Inhaltscenter: Kopie einer Norm erstellen und Vorlage austauschen

Wie kann ich in einer Norm die Vorlagendatei austauschen, z.B.weil ich ein eigenes Normteil erstellen will, das ähnlich einer bestehenden Norm ist sich aber geometrisch unterscheidet?

1. Falls nicht vorhanden, eine Bibliothek mit Schreib- und Lesezugriff erstellen. Das geht über das Projekte-Fenster und dem Knopf rechts an der Seite.

2019-01-09 08_42_21

2. Eine Norm, die ähnlich des anzupassenden Teiles ist, in die neue Bibliothek kopieren (oder mittels Speichern unter als unabhängige Kopie erstellen). Extras > Editor (Inhaltscenter)

Entweder so…

2019-01-09 08_43_29

Inventor FAQ Newsletter. Emailadresse: