| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Plot auf Verschiedenen Formaten (4358 mal gelesen)
|
eud Mitglied Konstrukteur
Beiträge: 67 Registriert: 22.03.2005 Inventor 11 SP2, Windows XP SP2, Intel Core2Duo 1.86 GHz, 2GB RAM, ATI FireGL V3300
|
erstellt am: 21. Feb. 2006 14:55 <-- editieren / zitieren --> Unities abgeben:
Hallo VBA-Profis Folgendes Problem: Wenn ich eine neue Zeichnung zum ersten mal ausdrucke muss ich immer 3xA3 und 1xA4 ausdrucken. Das ist ziemlich umständlich weil ich jedes mal die Papiergrösse in den Druckereigenschaften änder muss. Ich habe mich gefragt ob es möglich ist das ganze über ein Makro zu steuern. Habe leider nur wenig erfahrung mit VBA (autodidaktisch). Hat jemand ein ähnliches Makro, dass ich ändern könnte. Viele Grüsse aus der Schweiz Dominique Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 21. Feb. 2006 15:51 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hi eud! Ich hab dir doch eh schon mal das mit den Sendkeys gesendet! http://ww3.cad.de/foren/ubb/Forum50/HTML/010928.shtml#000006 z.B. Sendkeys "^p", True = Strg + P = Plotaufruf und durch solche Anweisungen kannst den Ganzen Druckvorgang mit einem Makro steuern. Legende: Taste: Zeichencode: Alt % Strg ^ F1,F2 usw {F1},{F2}.. Tab {TAB} ESC {ESC} Enter {ENTER} oder ~ down {Down} Entf {DEL} Zurück (<--) {BS} Bei mir sieht das so aus: On Error GoTo Err If ThisApplication.ActiveDocumentType <> kDrawingDocumentObject Then Exit Sub Dim Zeichnung As DrawingDocument Set Zeichnung = ThisApplication.ActiveDocument Dim printm As DrawingPrintManager Set printm = Zeichnung.PrintManager printm.Printer = "Druckername" Dim blatt As sheet Set blatt = Zeichnung.ActiveSheet Dim größe As String größe = blatt.size Select Case größe Case "9993" 'A0 SendKeys "^p{DOWN}{DOWN}{TAB}~{TAB}{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN }^{TAB}^{TAB}{TAB}{TAB}{DOWN}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}" 'Übergröße ISO-A0 Case "9994" 'A1 SendKeys "^p{DOWN}{DOWN}{TAB}~{TAB}{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}^{TAB }^{TAB}{TAB}{TAB}{DOWN}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}" 'Übergröße ISO-A1 Case "9995" 'A2 SendKeys "^p{DOWN}{DOWN}{TAB}~{TAB}{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}^{TAB}^{TAB }{TAB}{TAB}{DOWN}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}" 'Übergröße ISO-A2 Case "9996" 'A3 SendKeys "^p{TAB}~^{TAB}^{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{UP}^{TAB}{TAB}{TAB}{TAB}{TAB}{DOWN}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}" 'A3 Case "9997" 'A4 SendKeys "^p{TAB}~^{TAB}^{TAB}^{TAB}{TAB}{TAB}{TAB}{TAB}{up}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}" 'A4 Case Else MsgBox "Es ist kein passendes Papierformat eingestellt." _ & Chr(13) & "Der Druckvorgang wird abgebrochen.", vbInformation + vbOKOnly, "Hinweis:" End Select Err: Exit Sub Hoff, dass das weiterhilft! Die senkeys musst du aber selbst testen und dann in den Code übertragen! mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 21. Feb. 2006 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für eud
|
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 22. Feb. 2006 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Da ist ja der Hammer! Zitat: SendKeys "^p{DOWN}{DOWN}{TAB}~{TAB}{TAB}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN }^{TAB}^{TAB}{TAB}{TAB}{DOWN}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{-}{TAB}{+}"
Wenn sich die Befehlsfolgen wie bei AutoCAD ändern, wird man nie arbeitslos. Trotzdem 10Us für Dich für diese interessante Lösung Gruß Seher Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eud Mitglied Konstrukteur
Beiträge: 67 Registriert: 22.03.2005
|
erstellt am: 22. Feb. 2006 14:08 <-- editieren / zitieren --> Unities abgeben:
Kann man in der SendKeys Anweisung auch eine If Then anweisung einbauen. Ich hab mir da so gedacht, dass ich dem Makro sage, dass es wenn beim auswählen des papierformats "A3" steht es dann gleich mit {ENTER} fortfahren kann und wenn "A4" steht, soll es {UP}{ENTER} ausführen? ------------------ Grüsse vom schönen Thunersee Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 22. Feb. 2006 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo, probiers mal so: Code:
Dim oDrgPrintMgr As DrawingPrintManager Dim oDrgDoc As DrawingDocument Dim blattgröße As Single Dim orientierung As Single If ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then Set oDrgDoc = ThisApplication.ActiveDocument Dim blatt As Sheet Set blatt = oDrgDoc.ActiveSheet blattgröße = blatt.Size orientierung = blatt.Orientation Set oDrgPrintMgr = oDrgDoc.PrintManager oDrgPrintMgr.Printer = "Apple Color LW 12/660 PS" oDrgPrintMgr.ScaleMode = kPrintFullScale oDrgPrintMgr.PaperSize = blattgröße + 4344 oDrgPrintMgr.PrintRange = kPrintCurrentSheet oDrgPrintMgr.Orientation = orientierung + 3328 oDrgPrintMgr.TilingEnabled = False oDrgPrintMgr.SubmitPrint end if
Mit ein paar Anpassungen und einer Schleife 3xA3 und 1xA4 sollte das eigentlich gehen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eud Mitglied Konstrukteur
Beiträge: 67 Registriert: 22.03.2005
|
erstellt am: 23. Feb. 2006 10:02 <-- editieren / zitieren --> Unities abgeben:
Ich habe jetzt folgendes Makro: Sub AvorDruck() SendKeys "^p{TAB}~{TAB}{TAB}{TAB}~{RIGHT}{DOWN}{UP}~{TAB}~{TAB}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{3}{TAB}{TAB}{TAB}{TAB}{TAB}~" 'A3 SendKeys "^p{TAB}~{TAB}{TAB}{TAB}~{RIGHT}{DOWN}{DOWN}~{TAB}~{TAB}~{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{1}{TAB}{TAB}{TAB}{TAB}{TAB}~" 'A4 End Sub
Leider Funktioniert es nur immer für ein Format. Das heisst, ich kann entweder A4 oder A3 drucken, indem ich eines der beiden inaktiv mache. Wenn beide zusammen aktiv sind, druckt der Drucker gar nichts.
------------------ Grüsse vom schönen Thunersee Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VOSTA1 Mitglied techn. Angestellter
Beiträge: 108 Registriert: 23.12.2002
|
erstellt am: 23. Feb. 2006 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo, wenn Du schon mit send key arbeiten möchtest dann würde ich folgende Methode empfehlen. Macht Deinen Code etwas nachvollziehbarer. sub drucken SendKeys "%d" '% steht für ALT SendKeys "D" SendKeys "{TAB 12}" '12 mal Tab eventuell anpassen SendKeys "{Enter}" ' end sub ------------ UMSCHALT +-> sendkeys "+" STRG ^ -> sendkeys "^" Alle Sondertasten gibst unter Visual Basic Hilfe MFG VOSTA
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
P164 Mitglied
Beiträge: 39 Registriert: 03.06.2004
|
erstellt am: 23. Feb. 2006 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für eud
|
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 23. Feb. 2006 19:47 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hi zusammen! Weil ich anscheinen grad alle Profis was druckeransteuern betrifft versammelt habe, hab ich da mal so ne Frage: Wie kann ich möglichst einfach auf die Druckereigenschften zugreifen! Mir ist schon klar, dass ich im Printmanager bei IV alles einstellen kann doch die Druckereigenschaften ändern sich nicht automatisch mit! So wie z.b. im Autocad Printdialog! Wie komm ich dann aus einem IV AddIn am einfachsten an die Druckereigenschaften? Vielen Dank!! mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 23. Feb. 2006 21:18 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo BernhardU, auf welche Eigenschaft willst du zugreifen? Ich mache mit dem Code aus IV Pdf's und Ausdruke in 1:1 oder angepasst auf A4,A3 in der richtigen Orientierung. Was braucht man mehr? Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 24. Feb. 2006 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für eud
|
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 24. Feb. 2006 21:06 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hi, muß ja wohl so sein, sonst könnte man aus IV ja nicht auf verschiedene Papierformate drucken. Das einzige "Problem" ist, dass die Blattgröße, ermittelt mit blatt.size nicht gleich printmanager.papersize ist. Deshalb im Code printmanager.papersize = blattgröße + 4344. Der Wert 4344 kannst du aus den kenum... der jeweiligen Eigenschaften ableiten. Das ergibt für die einzelnen Blattgrößen den Unterschied 4344. Wenn du also 1:1 drucken willst passt der code, wenn du auf ein bestimmtes Format drucken willst, mußt du die Papiergröße irgendwie, Userform mit Optionbuttons, vorgeben und kprintfullscale in kPrintBestFitScale ändern. Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eud Mitglied Konstrukteur
Beiträge: 67 Registriert: 22.03.2005
|
erstellt am: 27. Feb. 2006 11:04 <-- editieren / zitieren --> Unities abgeben:
@reinhard: wenn ich es mit dem code den du weiter oben gepostet hast versuche wählt der drucker das papierformat "letter" aus. das bedeutet doch, dass ich eine andere Zahl als 4344 einsetzen muss. nur habe ich keinen blassen schimmer was der/die/das kenum ist. und das mit dem kPrintBestFitScale ist sehr, sehr hilfreich. Gruss Dominique
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 27. Feb. 2006 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo zusammen! Ich wollte noch was fragen: Wir haben bei unserem Plotter ca. 30 verschiedene Blattformate! z.b. A1 normal A1 übergoß usw. Doch wie kann ich dann eine bestimmte Blattgröße auswählen? Vielen Dank! mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001
|
erstellt am: 28. Feb. 2006 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Also ich drucke immer mit dem Makro hier --> evtl. geht daraus ja hervor, wie das mit der Einstellerei so funktioniert. Man kann damit auch "Screenshots" machen. Bei Bauteilen und Baugruppen wird gezeigt, wie das mit dem Austausch der Hintergründe so funktioniert. Damit kann man jenachdem für welche Firma man gerade arbeitet, deren Logo mit in den Hintergrund beamen. HTH ------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. —Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001 DELL Precision 7520 Win10Pro-64 Inventor mit Vault Professional 2022 --------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)
|
erstellt am: 28. Feb. 2006 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für eud
evtl hilft dies hier auch weiter: Code:
'Get the active document and check whether it is a drawing document If Not ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then Exit Sub End If Dim oDrgDoc As DrawingDocument Set oDrgDoc = ThisApplication.ActiveDocument ' Set reference to drawing print manager ' DrawingPrintManager has more options than PrintManager ' as it's specific to drawing document Dim oDrgPrintMgr As DrawingPrintManager Set oDrgPrintMgr = oDrgDoc.PrintManager '---------------------------------------------------------------------------------- ' Set the printer name ' comment this line to use default printer or assign another one '---------------------------------------------------------------------------------- ' oDrgPrintMgr.Printer = "HP LaserJet 4000 Series PCL 6" '---------------------------------------------------------------------------------- ' Set the printers ColorMode '---------------------------------------------------------------------------------- ' kPrintColorPalette Print using color ' kPrintDefaultColorMode Default setting for color mode ' kPrintGrayScale Print using a gray scale '---------------------------------------------------------------------------------- oDrgPrintMgr.ColorMode = kPrintDefaultColorMode '---------------------------------------------------------------------------------- ' Set the printers scale-mode '---------------------------------------------------------------------------------- ' kPrintBestFitScale Print using a best-fit scale for the Drawing ' kPrintCurrentWindow Print the contents of the window as-is ' kPrintCustomScale Print usign the custom scale specified elsewhere ' kPrintFullScale Print using full scale of the Drawing '---------------------------------------------------------------------------------- oDrgPrintMgr.ScaleMode = kPrintCustomScale '---------------------------------------------------------------------------------- ' Gets/Sets the scale of the print. ' Meaningless when the ScaleMode is not kPrintCustomScale ' ' if you need to plot as drawing as 1/4 scale, this property should be set to 0.25. ' If you need to plot at twice the scale this property should be set to 2. ' If the paper is smaller than the specified sheet size, a portion of the sheet will not print. ' '---------------------------------------------------------------------------------- Dim dScale As Double dScale = 1 oDrgPrintMgr.[Scale] = dScale '---------------------------------------------------------------------------------- ' Set the paper size. '---------------------------------------------------------------------------------- ' kPaperSize10x14 ' kPaperSize11x17 ' kPaperSizeA2 ' kPaperSizeA3 ' kPaperSizeA4 ' kPaperSizeA4Small ' kPaperSizeA5 ' kPaperSizeB4 ' kPaperSizeB5 ' kPaperSizeCSheet ' kPaperSizeCustom ' kPaperSizeDefault ' kPaperSizeDSheet ' kPaperSizeESheet ' kPaperSizeExecutive ' kPaperSizeFolio ' kPaperSizeLedger ' kPaperSizeLegal ' kPaperSizeLetter ' kPaperSizeQuarto '---------------------------------------------------------------------------------- oDrgPrintMgr.PaperSize = kPaperSizeA4 '---------------------------------------------------------------------------------- ' Change the paper size to a custom size. The units are in centimeters. ' only valid if PaperSize is set to custom size '---------------------------------------------------------------------------------- oDrgPrintMgr.PaperHeight = 15 oDrgPrintMgr.PaperWidth = 10 '---------------------------------------------------------------------------------- ' Set the orientation '---------------------------------------------------------------------------------- ' kDefaultOrientation ' kLandscapeOrientation ' kPortraitOrientation '---------------------------------------------------------------------------------- oDrgPrintMgr.Orientation = kDefaultOrientation '---------------------------------------------------------------------------------- ' Read-write property that gets and sets whether the drawing should be ' rotated 90 degrees when printed. This property only applies to drawing documents. ' It is initialized to False. '---------------------------------------------------------------------------------- oDrgPrintMgr.Rotate90Degrees = False '---------------------------------------------------------------------------------- ' Read-write property that gets and sets which sheets to print. ' ' kPrintCurrentSheet the active sheet will be printed. ' kPrintAllSheets all sheets will be printed. ' kPrintSheetRange the sheets defined using SetSheetRange will be printed. ' '---------------------------------------------------------------------------------- oDrgPrintMgr.PrintRange = kPrintCurrentSheet '---------------------------------------------------------------------------------- ' Get and set the current sheet range. '---------------------------------------------------------------------------------- ' Dim iFromSheet As Long ' Dim iToSheet As Long ' Call oDrgPrintMgr.GetSheetRange(iFromSheet, iToSheet) ' MsgBox "Current sheet range is " & iFromSheet & " to " & iToSheet & Chr(13) & _ "Setting to print sheets 1-2." '---------------------------------------------------------------------------------- ' Change the print range to print sheets 1 through 2. '---------------------------------------------------------------------------------- ' oDrgPrintMgr.PrintRange = kPrintSheetRange ' Call oDrgPrintMgr.SetSheetRange(1, 2) ' Change the number of copies to 1. Dim iNumberOfCopies As Long iNumberOfCopies = 1 oDrgPrintMgr.NumberOfCopies = iNumberOfCopies ' Submit the print. oDrgPrintMgr.SubmitPrint
------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. —Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 01. Mrz. 2006 21:10 <-- editieren / zitieren --> Unities abgeben: Nur für eud
@eud: du hast Recht, der Wert 4344 ist nur für die Formate A4, A3, A2 korrekt. Du kannst den Wert über DrawingSheetSizeEnum und PaperSizeEnum ermitteln. Habs bisher nicht gemerkt, weil ich bisher nur A4 und A3 hatte. Hab mir beim Programmieren auch nur A4-A2 angeschaut und gedacht wenn sich bei drei ein konstanter Wert ergibt wirds bei den anderen schon auch so sein. Man sollte sich nicht darauf verlassen. Vielleicht kannst du über paper.height=sheet.height paper.width=sheet.width was machen. Wenn ich morgen Zeit hab, werd ich das mal probieren. Gruß Reinhard
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 03. Apr. 2006 15:37 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo zusammen! Bei mir funktioniert jetzt fast alles einwandfrei! Denn wenn ich die Großformate an den Plotter schicken will muss ich die Übergrößen vom Papierformat nehmen, um die Zeichung 1:1 darstellen zu können! Doch wenn ich Code: PaperSize = PaperSizeEnum.kPaperSizeA1Oversize
einstelle dann bekomme ich irgend ein komisches a4 format und nicht A1 übergröße!! Was kann ich da machen! Ich will nicht das normal a1 Format nehmen denn dann stimmet der Maßstab nicht mehr!!Vielen Dank! mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 05. Apr. 2006 00:31 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo Bernhard, ich geh mal davon aus, dass du A1OverSize über das Druck-Menü für deinen Plotter auswählen kannst. Lies doch nachdem du die Papersize gesetzt hast diese nochmal aus. Ist das der Wert für A1OverSize? Noch eine Verständnisfrage. Wieso wird ein Blatt, dass A1 ist, auf eurem Plotter nicht maßstäblich gedruckt, wenn man A1 ausdruckt? Gruß Reinhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 05. Apr. 2006 08:04 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Guten Morgen rtend12! Nein stimmt schon es wird schon in der richtigen größe ausgedruckt, doch es föllt auf der rechten seite die Linie vom Rahmen zum zuschneiden weg! Somit hätte ich gern das oversize Format! Hab das jetzt getestet und es wird richtig übernommen mit dem oversize format! und es wird bei allen drei oversize Formaten das gleiche benutzerdef. A4 Format zugewiesen!! Also das versteh ich nicht! ???????? vielen Dank mfg Bernhard
[Diese Nachricht wurde von BernhardU am 05. Apr. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 05. Apr. 2006 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für eud
|
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 IV Prof 2012 VS 2010
|
erstellt am: 05. Apr. 2006 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für eud
|
rtend12 Mitglied Dipl.-Ing. (FH) Maschinenbau / Konstrukteur
Beiträge: 436 Registriert: 21.07.2004 Catia V5 (R16SP5, B18SP5) VB.Net 2003
|
erstellt am: 05. Apr. 2006 21:47 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Hallo Bernhard, in VB kannst du mit: Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MyPrinter.PrinterSettings.PrinterName = "HP DesignJet 3500CP PS3" Dim osizes() Dim i As Integer For i = 0 To MyPrinter.PrinterSettings.PaperSizes.Count - 1 ListBox1.Items.Add(MyPrinter.PrinterSettings.PaperSizes.Item(i).PaperName & MyPrinter.PrinterSettings.PaperSizes.Item(i).PaperName) Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MyPrinter.DefaultPageSettings.PaperSize.PaperName = ListBox1.SelectedItem End Sub
kannst du die möglichen Papiergrößen deines Plotters auslesen und eine auswählen. Kannst natürlich auch die Größe, Heigth u. Width, vorgeben. Über das Zusammenspiel von Inventor-VBA und einer EXE, die die Druckereinstellungen macht bin ich mir zwar nicht so ganz sicher, aber geht bestimmt. Oder du schreibst gleich ein VB-Addin oder eine Exe, die deine Zeichnung mit Apprentice druckt. PS: MyPrinter findest du in den WindowsForms: PrintDocument Gruß Reinhard [Diese Nachricht wurde von rtend12 am 05. Apr. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hohenöcker Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 2376 Registriert: 07.12.2005
|
erstellt am: 16. Mai. 2006 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für eud
Zitat: Original erstellt von eud: Hallo VBA-ProfisFolgendes Problem: Wenn ich eine neue Zeichnung zum ersten mal ausdrucke muss ich immer 3xA3 und 1xA4 ausdrucken. Das ist ziemlich umständlich weil ich jedes mal die Papiergrösse in den Druckereigenschaften änder muss. Ich habe mich gefragt ob es möglich ist das ganze über ein Makro zu steuern. Habe leider nur wenig erfahrung mit VBA (autodidaktisch). Hat jemand ein ähnliches Makro, dass ich ändern könnte. Viele Grüsse aus der Schweiz Dominique
Hallo Dominique, mach 3x A3 und verkleinere eins auf dem Kopierer. Gruß,
------------------ Gert Dieter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |