Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Systemdrucker Parameter in VBA verarbeiten

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Systemdrucker Parameter in VBA verarbeiten (1226 mal gelesen)
TomiProg
Mitglied
Technischer Zeichner


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

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 19. Nov. 2004 12:34    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 Leute.

Gibt es eine Möglichkeit, Parameter wie etwa Papierambessungen oder Ausrichtung  des Systemdruckers in VBA einzulesen?
Folgendes habe ich vor:
Wir haben einen HP-Laserdrucker im DIN-A 3 Format. Ein selbstgeschriebenes Druckertool für AutoCAD14 (VBA) regelt unter anderem die PCP-Zuordnung für die Strichstärken von unterschiedlichen Gewerken (hier Heizung, Lüftung, Sanitär). Man kann ja über Druck-/Plotkonfiguration auch auf die Einstellungen des Systemdruckers zugreifen. Kann man über VBA auch auf diese Einstellungen zugreifen? Wenn ja, wie?
Mir würde ja schon genügen, wenn ich die Einstellungen nur auslesen kann, damit ich meinem VBA-Programm mitteilen kann, welches Papierformat zum Beispiel im Systemdrucker eingestellt ist.

Viele Grüße ins Forum
Tomi

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

FraG
Mitglied


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

Beiträge: 2
Registriert: 25.08.2004

erstellt am: 22. Nov. 2004 11:13    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 TomiProg 10 Unities + Antwort hilfreich

Hallo Tomi,

probier mal das nachfolgende Beispiel.


###################################################

Global MarginLowerleft As Variant
Global MarginUpperright As Variant
Global insFaktor As Double
Global PaperHeight As Double
Global PaperWidth As Double
Global PlotHeight As Double
Global PlotWidth As Double
Global LayoutInspoint(0 To 2) As Double


Sub exampleplotsize()

'paperspace aktive ?
If ThisDrawing.ActiveSpace = acModelSpace Then
    MsgBox "Paperspace is not active"
    Exit Sub
End If

'check the scale ( mm or inch )
If ThisDrawing.ActiveLayout.PaperUnits = acInches Then
  insFaktor = 1 / 25.4
Else
  insFaktor = 1
End If

'Papersetting in mm
ThisDrawing.ActiveLayout.PaperUnits = acMillimeters
ThisDrawing.ActiveLayout.StandardScale = ac1_1

'the following line gets the paper size
ThisDrawing.ActiveLayout.GetPaperSize PaperWidth, PaperHeight

'plot rotation
plot_Rotation = ThisDrawing.ActiveLayout.PlotRotation

'printable area
ThisDrawing.ActiveLayout.GetPaperMargins MarginLowerleft, MarginUpperright

'
PlotWidth = (PaperWidth - (MarginUpperright(0) + MarginLowerleft(0))) * insFaktor
PlotHeight = (PaperHeight - (MarginUpperright(1) + MarginLowerleft(1))) * insFaktor

MsgBox PlotWidth & vbCrLf & PlotHeight

End Sub

#################################################################
Gruß FraG

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

TomiProg
Mitglied
Technischer Zeichner


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

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 22. Nov. 2004 13:03    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

Leider ist es nicht das, was ich gemeint habe. Wie der Drucker bzw. der Plotter von AutoCAD angesteuert wird, ist mir bekannt. Vielmehr beschäftigt mich die Frage, ob die Parameter auch vom Windows-Systemdrucker auslesbar sind. Mit Systemdrucker meinte ich nicht den von AutoCAD, sondern den von Windows selbst.
Trotzdem Danke. Es sind in deiner Ausführung ein paar interessante Zeilen, die mein Programm besser und übersichtlicher machen könnten.

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

JoeG
Mitglied
Systemadmin NX und Autocad


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

Beiträge: 122
Registriert: 18.10.2002

Autocad 2000 und Win2000

erstellt am: 23. Nov. 2004 07:31    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 TomiProg 10 Unities + Antwort hilfreich

Hallo Tomi
http://www.activevb.de/tipps/tipkat/kat6.html

auf dieser Seite sind ein paar Beispiele in VB die du
vielleicht verwenden kannst.
Mir hat diese Seite schon oft aus der Patsch geholfen

Joe

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

TomiProg
Mitglied
Technischer Zeichner


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

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 23. Nov. 2004 11:24    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

Ja Super. Da ist ja genau das dabei, was ich brauche (Tip 0410).
Doch jetzt hab ich das Problem, dass es in VBA logischer weise nicht funzt. Mit Declare-Anweisungen habe ich sowieso Probleme, weil, ganz Ehrlich gesagt, ich keine Ahnung habe, wie und wo und mit was man Declare-Anweisungen erstellt. Im Prinzip brauche ich nur die vom Windows-Systemdrucker eingestellte Papiergröße (A3 oder A4) in meinem VBA-Code. Hier der benötigte Teil aus dem obigen Tip (VB-Tip):

Option Explicit
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc _
        As Long, ByVal nIndex As Long) As Long

Const HORZSIZE As Long = &H4&
Const VERTSIZE As Long = &H6&

Private Sub GetPrinterInfo()
    Dim x As Long, pDc As Long
   
    pDc = Printer.hdc
    Debug.Print "Width in mm =" & GetDeviceCaps(pDc, HORZSIZE)
    Debug.Print "Height in mm=" & GetDeviceCaps(pDc, VERTSIZE)
End Sub


VBA erkennt die PRINTER-Methode nicht und ich weis nicht, ob sich das über Verweis oder so in VBA einbinden läßt. Wenn doch, wäre ich für jede Unterstützung dankbar.

Grüße
Tomi

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 23. Nov. 2004 19:17    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 TomiProg 10 Unities + Antwort hilfreich

Hi Tomi,

schlechte Karten soweit ich weiss, wird das Printer-Object von VBA nicht unterstützt, sondern ist nur dem grossen Bruder VB bekannt.

Keine Ahnung ob und wie man das umschiffen könnte und wenn,
ein Dreizeiler isses sicher nicht ;-)

lg Nancy

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



Anzeige:Infos zum Werbeplatz >>

cbaCAD xD CAD APP für Fassadenbau, AEC - Architektur-, Ingenieur- und Bauwesen, 3D

Planung von Gebäudehüllen in BricsCAD und AutoCAD Gebäudehüllen, Fassaden, nicht nur in Metallleichtbauweise

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 23. Nov. 2004 19:45    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 TomiProg 10 Unities + Antwort hilfreich

ich nochmal ...
weiss nicht ob's was hilft, hab den Link sogar wiedergefunden,
allerdings gings mir damals um die Druckernamen:
http://www.excel-center.de/forum/read.php?f=1&i=51131&t=51131#reply_51131

Wegen Papierformaten - nicht die blasseste Ahnung wie das geht ;-)

lg Nancy

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)2025 CAD.de | Impressum | Datenschutz