Archiv des Tags “VB”

Maßstab im Inventor-Schriftfeld einfügen

15. Oktober 2009, 18:52 Uhr

Wir möchten auf der Arbeit gerne den Maßstab einer Inventor-Zeichnung im Schriftfeld eingetragen haben. Bis jetzt haben wir das gelöst, indem wir eine Textbox vom Typ “Angeforderte Eingabe” und mit dem Namen “SCALE” im Schriftfeld haben, die der Benutzer selber ausfüllen muss. Das klappt an sich auch ganz gut, man neigt nur leider dazu, das Eintragen zu vergessen. ;)

Im Netz gibt es eine Lösung, wie man automatisch den Maßstab der Erstansicht ermitteln und als iProperty speichern kann. Dieses iProperty kann man dann auch im Schriftfeld anzeigen: Maßstab auch bei Inventor 2009 64-Bit automatisch im Schriftkopf einfügen

Leider hat diese Lösung einen Haken. Das iProperty wird global in der Zeichnung gespeichert und gilt für sämtliche Blätter. Es klappt also nicht, wenn die Blätter verschiedene Maßstäbe darstellen.

Um das Problem zu lösen, verwende ich kein iProperty sonder das “SCALE”-Textfeld in unserem Schriftfeld. Die Werte für die angeforderte Eingabe werden im jeweiligen Schriftfeld gespeichert und können Sie daher unterscheiden. Außerdem könnte die Benutzer den Wert bei Bedarf relativ einfach ändern…

Der Quelltext ist allerdings kein VBA-Code sondern in VB.NET geschrieben und wird in unserm Inventor-AddIn verwendet:

Weiterlesen…

Probleme beim Drucken von A0 und A1 mit der Inventor-API

17. Juli 2007, 21:44 Uhr

Nachdem wir auf der Arbeit von Inventor 10 auf Inventor 2008 umgestiegen sind, hatte ich Problem mit meinem Visual Basic Programm, was nachts die geprüften IDW-Zeichnungen ins PDF-Format konvertiert. Bei Blättern im A0 und A1-Format stimmten die Seitenränder nicht und der Inhalt erstreckte sich nicht über die ganze Seite.

Problem war, das Inventor 2008 anscheint Probleme mit den Konstanten kPaperSizeA0 und kPaperSizeA1 hat, wenn man sie der Eigenschaft PaperSize des PrintManager-Objekts zuweist. Danach hat PaperSize trotzdem den Wert kPaperSizeDefault, was in meinem Fall Letter bedeutete.

Wenn man die Höhe und Breite der beiden Formate von Hand setzt, klappt es aber zum Glück:

Select Case oSheet.Size
  Case kA0DrawingSheetSize 'A0
    oPrintMgr.PaperSize = kPaperSizeCustom
    oPrintMgr.PaperWidth = 84.1
    oPrintMgr.PaperHeight = 118.9
  Case kA1DrawingSheetSize 'A1
    oPrintMgr.PaperSize = kPaperSizeCustom
    oPrintMgr.PaperWidth = 59.4
    oPrintMgr.PaperHeight = 84.1
  Case kA2DrawingSheetSize 'A2
    oPrintMgr.PaperSize = kPaperSizeA2
  Case kA3DrawingSheetSize 'A3
    oPrintMgr.PaperSize = kPaperSizeA3
  Case kA4DrawingSheetSize 'A4
    oPrintMgr.PaperSize = kPaperSizeA4
End Select

Von solchen Fehlern mal abgesehen, ist die Inventor-API aber schon ziemlich cool und mächtig! ;)