Autodesk Inventor: Plotten per Makro

Mo, 23.03.2009 - 15:52 -- Daniel Espendiller

Ursprünglich aus einem Makro zum Drucken von Zeichnungen im IDW-Format aus Inventor heraus, um Plotterkonfigurationen zu testen, ist mittlerweile eine eigenständige DLL bzw. Addin für Inventor geworden. Mir war es doch etwas umständlich immer den Weg über Datei > Drucken ... zu gehen, die gewünschte Seitengröße, Drucker, usw. einzutragen.In einer XML-Datei können alle Einstellungen an die eigenen Bedürfnisse angepasst werden.

Features

  • Dynamische Anpassung der Plot/Druckerkondiguration in XML-Datei
  • Automatische Querformat/Hochformat und Seitengrößen Auswahl an Hand der Zeichnung
  • Ausfüllen und Erstellung der IProperties (Plotdate,Plotuser) für z.B. den Schriftkopf
  • 90-Drehnungen von unterschiedlichen Formaten (vorzugsweise A0 und A1)
  • Aktualisierung der Stilbibliothek (z.B. Linienstärke) von der zentralen Bibliothek
  • Eigene Toolbar. Pro Druckerkonfiguration ein Button.
  • Buttons können für kreative Leute selber designt werden :)
  • PDFs über PDFCreator
  • x86 und x64 tauglich
  • Konverter-Tools von Inventor werden unterstützt: Über einen Konpfdruck wird eine PDF ohne Zusatztools direkt im gleichen Pfade wie die dazugehörige IDW gespeichert

Vorraussetzungen

Es gibt zwei unterschiedliche Version die "alte" nur mit der klassischen Oberfläche und die neue mit den aktuellen Features für die Ribbonoberfläche.

UPDATE: 10 Mai. (für Inventor 2010) - Klassik und Ribbon in einem rev19

  • MSI für x86 / x64 für die Softwareverteilung
  • Konfigurierbarer Pfad

aktuelle Version (für Inventor 2010) - InventorPrintButtons

  • Hier wird nur die neue Oberfläche (Ribbons) unterstützt; eventuell wird noch die klassische Oberfläche eingebunden

ältere Version Inventor 2009 und älter - DruckButtons

  • Nur klassische Oberfläche
  • einige Features sind nicht vorhanden
  • Für Inventor 11 müsste der vorhanden Quellcode mit MSBee auf Framenetwork 1.0/1.1 kompiliert werden

Installation

Zur Installation einfach die Setupdatei runterladen und installieren. Die Installationsroutine erkennt ob es sich bei dem System um ein x86 oder x64 System handelt. Die DLL wird dann am System registriert. Muss eine manuelle Registierung der Datei erfolgen, so liegen diverse Batchdateien im Installationsordner bereit.
Zum Anpassen der Drucker ist die Datei InventorPrinterConfig.xml anzupassen.

klassische Toolbar (Inventor 2009 und älter):

Nach dem ersten Starten des Inventors (nachdem das Addin installiert wurde), wird automatisch eine eigene Toolbar installiert. Sollte man die Toolbar ausversehen geschlossen haben, so muss durch anpassen des Inventor-Menü die Toolbar wieder aktiviert werden. (Rechtsklick in den grauen Bereich Anpassen, Werkzeugleiste: Menü und Haken bei Druckbuttons)

Konfiguration

Alle Druckereinstellungen können über die Datei InventorPrinterConfig.xml verändert werden. Es wird in folgenden Pfade der Reihe nach gesucht:

  • Die Pfadangabe in der settings.xml, welche innerhalb des Installationsordner liegt. (z.B. zum Anlegen einer netzwerkweiten Konfiguration)
  • Eigene Dateien\InventorPrinterConfig.xml
  • Im Installationsordner

Als Beispiel eine InventorPrinterConfig.xml:









Optionen

  • WindowsPrinterName: Drucker/Plotter wohin gedruckt werden soll (defaultprinter für Standarddrucker)
  • Tooltip: Gezeigter ToolTipText für den Button (optional)
  • AllColorsAsBlack: In Schwarzweiß plotten (optional)
  • UpdatePlotstyles: Übernahme der Stilbibliothek, sollte sie nicht aktuell sein (optional)
  • UpdateIProperties: Erstellen/Ersetzen der IFeatures: plotuser, plotdate (optional)
  • PrintScaleMode: Anpassung der Scalierung z.B. "beste Einpassung", kPrintBestFitScale (optional)
  • FixedPaperSize: Druck auf Papierformat erwingen: kPaperSizeA0,kPaperSizeA1,... (optional)

Multilanguage

im Unterordner languages können die ausgegebenen Text entsprechend nach den Länderkürzeln erstellt werden. Standardsprache ist englische eine eingedeutschte Version liegt aber bereits bei.

Symbole

Für jede Konfiguration kann im Unterordner icos ein eigenes Symbol, welches in der Toolbar erscheinen soll, abgelegt werden. Der Dateiname muss dem Eintrag in der XML-Datei entsprechen und vom Typ GIF sein.

Versionsverwaltung / Sourcecode

Der komplette Sourcecode für VB.NET steht in meiner SVN Verwaltung bereit (siehe Seitenfuß oder rechte Seitennavigation). Ich werden versuchen strikt alle zukünftigen Änderungen dort einzupflegen :)

Changelog

2010 März

  • Configs können von mehreren Positionen geladen werden.

2009 November

  • Multilanguage für Textausgaben
  • Translator-Tools eingebunden
  • Konfigurationsdatei heißt jetzt immer InventorPrinterConfig.xml
  • Ribbonoberfläche
  • momentan zwei Versionen für Ribbons und klassische Oberfläche
  • SVN zur Entwicklung

2009 Juni

  • wurden Änderung an der XML-Datei gemacht so gab es einen Fehler bei der Toolbar Generierung
  • UpdateIFeatures heißt jetzt UpdateIProperties
  • drucker.xml muss jetzt printer.xml heißen

2009 März

  • first release

Disqus - noscript

Hallo Daniel,
Ich habe es mal versucht zu installieren.
leider bin ich nicht in der Lage die Drucker zu zu weisen.
was kann ich tun?
Die Idee und Deine Ausführung ist klasse.

Thorsten

die Iproerties sind auch nicht zur Auswahl. Ich wollte sie in der Norm.ipt "verankern"
Damit überhaupt die iProperties generiert werden, musst du in der XML-Datei InventorPrinterConfig.xml bei einem Drucker UpdateIProperties="true" setzen. Ich habe bisher nur das zusätzliche Addin (innerhalb der verweise zu finden) genutzt, deswegen ist es momentan ausgeschaltet.
die iProperties findest du dann übrigens nur in den IDW-Dateien, mir erschließt nicht so ganz der sinn was man mit den werten in der norm.ipt will?
zum anpassen der drucker an deine umgebung musst du WindowsPrinterName in der xmldatei anpassen. du musst den kompletten netzwerkpfad mit servernamen angeben, wenn es sich um einen netzwerkdrucker handelt bzw. nur den namen für lokale drucker (z.b PDFCreator)
Hallo,

Zuerst mal vielen Dank für das Tolle Plugin!
Funktioniert einwandfrei bis auf den kleinen Fehler das bei den Buttons "PDF Black" und "PDF" das exportierte PDF immer in schwarz/weiß ist.
Also es spielt keine Rolle ob man den Button "PDF Black" oder nur "PDF" anklickt, das Ergebnis bekommt keine Farbe.
Bitte um Lösung des Problems

Vielen Dank
Hallo Daniel,
ersteinmal ein ganz großes Danke für dieses super Addin.
---Respekt---
Da es so gut funktioniert habe ich mich natürlich sofort dran gemacht
sämtliche Drucker entsprechend einzurichten und auch mit hübschen Icons zu versehen.
Da ich langsam auf die 40 zugehe kommt natürlich der Wunsch nach
größeren Icons auf. Daher meine Frage:
Gibt es eine (einfache) Möglichkeit die Drucker-Icons auf die gleiche Größe zu bekommen wie die in der Translator-Gruppe?
Grüße Egbert
Wie kommt man auf über 40 Drucker, was hast du denn für einen Druckerfuhrpark? Den Screenshot möchte ich mal gerne sehen :)

Das hab ich leider nicht vorgesehen. Wobei man nur eine Zeile im Quellcode ändern müsste. vielleicht überlege ich mir das mal wenn ich wieder etwas anpassen muss bzw. zeit dafür finde.
He,he der war gut...
40 Jahre, nicht Drucker!
Da mag man die Icons gerne grösser.
Es sind übrigens nur 9 Drucker.
den Screenshot schicke ich Dir aber trotzdem gerne.
Gruß Egbert
Hallo Daniel,
Ich muss sagen - echt ein Super-Tool.
Einzige was bei uns nicht funktioniert ist der Druck auf PDFDrucker ab einem Format ISO A1.
Manuell kann ich die Formate (A1, A0) ausgeben. Wenn ich über das Makro drucken will kommt Fehlermeldung : Falscher Parameter. ( Ausnahme von HRESULT:0x80070057 (E_INVALIDARG)).
Weisst du evtl. woran es liegen könnte?
Auf den HP Plotter funktioniert die Ausgabe (auch A1, A0) problemlos.
Danke
Lars
Tool ist super. Gibt es auch eine Möglichkeit die Ausgabe mit DXF zu machen?


Gruss
Domel02
Tool ist gut ich habe aber eine Frage:
Was ist die Unterschied zwischen Printbuttons-svn19-mai2010 und Inventor printbuttons ab Inventor 2010 ???
Ich bekomme nämlich immer ein PDF mit Daten dabei (lagen), die m"chte ich lieber nicht haben.
m.fr.gr.
Ben Vissers
info@expertec.nl
06-53207656
Hallo,

nur kleiner Bugfixe und eine bessere Installationsroutine für x86 und x64. Die neueste Version steht in der Listen an obereste Position.
Ich habe die Config file geändert und alles geht gut, aber ich kann nur die richtige code nicht finden für der Print Range (Current sheet, All sheets)
Ich habe folgendes afgeschrieben: PrintRange="kPrintCurrentSheet" aber das geht nicht gut. Was ist die richtige Code?
Ich bin begeistert von der Lösung.
Könnte jemand dieses Makro für mich anpassen ( ich bin kein Progammierspezialist ) und zwar wie auf dem beiliegenden Bild. Alle für PDFCreator ( farbig ) ausgelegt. Funktionierend auf Inventor 2012.

In der InventorPrinterConfig.xml müsste der jeweilige Pfad für die PDF's einstellbar sein
zBsp.:
PDF offiziell -> PDF mit SL druckt Blatt1 nach L:\\Allgemein\\Zeichnungen\\PDF
PDF offiziell -> PDF ohne SL druckt Blatt2 nach L:\\Allgemein\\Zeichnungen\\PDF

PDF intern -> PDF mit SL druckt Blatt1 nach L:\\Allgemein\\Zeichnungen\\PDFIntern

PDF intern -> PDF ohne SL druckt Blatt2 nach L:\\Allgemein\\Zeichnungen\\PDFIntern

PDF temporär -> PDF mit SL druckt Blatt1 nach L:\\Temp

PDF temporär -> PDF ohne SL druckt Blatt2 nach L:\\Temp

Wäre echt cool.
Kosten ?

Vielen Dank für eine Reaktion.
Gruss
Stefan Huber

stefan.huber@hutech.ch

sowas sollte eigentlich schnell umgesetzt sein. Kannst dich ja mal gerne bei mir melden.
guck dir mal das zweite Klassendiagramm an:
http://www.espend.de/projekte/...

dort stehen alle werte drin, die man nutzen kann.
wäre super, wenn du mir weiterhelfen könnest. Was brauchst du für Angaben etc. ?

Gruss
Stefan Huber

stefan.huber@hutech.ch
Hallo,

ist es möglich dass plotuser und plotdate nicht in die iprop vermerkt werden?

Hi,

hat schon jemand eine Lösung?
(UpdateIProperties="false" funktioniert leider nicht)

Ich habe das Problem für uns so gelöst:

SetPlotIFeaturesOnGlobalPrintEvent="false"UpdatePlotStylesOnGlobalPrintEvent="false"UpdatePlotstyles="false"UpdateIProperties="false"GenerateIProperties="false"
Damit werden "plotuser" und "plotdate" nicht mehr in die IProperties eingefügt.

Gruss
Jan Hoffmann

Kann man auch einen bestimmten Pfad angeben, indem das PDF gespeichert wird?

Wenn ich mit "kpapersizeA4" drucke, dann wird beim Druck nicht A4 ausgewählt sondern Letter. Ist das normal?

Sorry war kein Problem! Hat sich erledigt!

Gibt es die Möglichkeit alle Blätter einer Zeichnung zu plotten?
Ich habe schon die verschiedensten Sachen probiert, leider ohne Erfolg.

GrussJan Hoffmann

Ne, es wird nur die aktuelle Zeichnung "im sichtfeld" ausgedruckt

 Wird trotzdem noch erstellt?!

Hallo!

Zuerst ein dickes Lob!
Meine Frage: kann man bei der PDF Erstellung das speichern als Zeichnung.idw.pdf ind Zeichnung.pdf ändern?
Ich muss sonst per Hand/Batch das .idw entfernen.

Gruß

Bernhard Küch

Hallo, ein wirklich sehr schönes Makro,

aber ein paar Fragen hätte ich noch dazu:

1. Wie übergibt man bei der Wahl von PrintScaleMode="kPrintCustomScale" den Skalierfaktor? Scale="2" oder "0.5" funktioniert hinter PrintScaleMode nicht.

Die gleiche Frage gilt für FixedPaperSize="kPaperSizeCustom", wenn man z.B. für den Plotter ein Papierformat von 900 mm x 2000 mm wählt?

2. Ist es normal wenn man FixedPaperSize wählt, dass automatisch Rotate außer Kraft gesetzt wird?

3. Kann man die Translatoroptionen auch anpassen?

4. Beim PDF-Export wird immer Name.idw.pdf gespeichert, kann man das .idw irgendwie weglassen?

Viele Grüße,

Ich wäre immer noch interessiert an einer Antwort zu Fragen 1+4, da habe ich keine Antwort gefunden und bei mir funktioniert das irgendwie nicht... Möchte gerne einen Button für den Plott von A3->A4.... scale=0.707 Wir haben immer noch ein 32bit System und da funktionieren alle anderen PlottAdIns nicht.
Besten Dank

Klasse Arbeit und vielen Dank.

Was muss ich bei PrintScaleMode eingeben um Modell 1:1 auszuwählen?

Und was muss ich eingeben damit der Bemaßungsstil in Stil- und Norm beim Drucken nicht verändert wird. UpdatePlotstyles="false" bringt nichts.

Gruß
Adam

Ergänzend:

Was müsste Eingeben um die "Objektlinienstärke entfernen" auszuwählen?

Gruß
Adam

Erstmal Klasse Arbeit!

Wie kann ich denn die Profilnamen wie "ROWE" in meinen gewünschten umbenennen bzw. neue Profile anlegen?

Außerdem würde mich interessieren, ob eigene Parameter implementierbar sind...wir haben z.B. eine Faltmaschine hinter unserem Plotter stehen, der ich gerne sagen würde, dass sie mit oder ohne Heftstreifen drucken soll...mit dem voreingestellten Parameter hats leider nicht funktioniert.

Beste Grüße
Stefan