Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  AutoCAD plotten

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
Autor Thema:  AutoCAD plotten (5424 mal gelesen)
facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 23. Mrz. 2009 13:46    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,

ich weiß nicht so recht, wo ich mein Problem einordnen muss, aber ich würde sagen VBA trifft es am besten.
Ich habe einen Stapel Zeichnungen in einem Verzeichnis liegen, dann ein Makro schreiben, wo ich alle Zeichnungen mit dem FileDialog markieren kann, diese der reihe nach geöffnet werden und geplottet.

Das sind alles ProSteel3D Dateien und Zeichnungen.

Das mit dem FileDialog bzw. das Drumherum ist erstmal Nebensache, ich probiere grad den grundlegenende Code aus, ich habe mit folgenen angefangen:

Code:
Sub test_plott()
Dim oACAD As AcadApplication
Set oACAD = AcadApplication
Dim oAcadDoc As AcadDocument

Set oAcadDoc = oACAD.Documents.Open("c:\arbeitsverzeichnis\zeichnung.dwg")

oAcadDoc.ActiveLayout.PlotType = acExtents
oAcadDoc.Plot.PlotToDevice "Adobe PDF.pc3"


oAcadDoc.SaveAs ("C:\arbeitsverzeichnis\zeichnung_ex.dwg")

oAcadDoc.Close
End Sub


Sobald ich im Code die Zeile

Code:
oAcadDoc.Plot.PlotToDevice "Adobe PDF.pc3"
durchläuft, startet AutoCAD ProSTeel 3D (das sehe ich an dem Programmfenster" danach fragt er mich Eine neue Zeichnung erkannt, wie soll der Maßstab sein Imperial/Metrisch, aber die Abfrage möchte ich garnicht haben.
Das Kurriose ist, das er beim Plotten ProSteel nachläd nicht beim öffnen des Dokuments?
Kann es sein, weil in dem Dokument Isometrieansichten von ProSteel sind?

Wie kann ich das Dokument mit ProSteel öffnen, das weder ProSteel nachgeladen wird noch die Abfrage nach dem Maßstab kommt?


Gruss Alex

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


Ex-Mitglied

erstellt am: 23. Mrz. 2009 13:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Alex,

am besten ein AutoCAD-Profil anlegen, bei dem ProSteel nicht geladen wird/geladen werden kann.

Damit kann ProSteel auch nicht mehr in Aktionen in AutoCAD eingreifen und Dialoge bringen, die eben nicht gewünscht sind.

- alfred -

PS: hast Du Dir schon mal 'publizieren' angesehen, da kannst Du auch mehrere Zeichnungen automatisiert plotten lassen.

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 23. Mrz. 2009 14:30    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 Alfred,

@publizieren, da hast du schon recht, ich möchte es bloß automatisieren, d.h. wenn das funktioniert, das jede geplottete Datei in eine Excel-Tabelle eingetragen wird, die der Auftraggeber für sein Controlling-Programm benötigt.
Aber das ist noch weit weit weg, nur damit du ersteinmal die grobe Richtung weißt.

Der Tipp mit dem Profil ohne ProSteel hat gewirkt, danke!

Aber jetzt habe ich noch ein Problem, wie kann ich die Papiergröße festlegen (A3,A1 ...), wie komme ich an den Plotmanager ran, da könnte ich mir ja die Plotteinstellungen "vorheriger Plot" herziehen.

Fürs erste würde mir schon reichen, wenn ich einstellen könnte, A1 oder A0 usw.

Ich habe in der Literatur gefunden, dass ich mit :

Code:
.GetCanoncialMediaNames
die Paiergrößen des Plotters ermitteln kann.

Aber wie lege ich im Layout fest welche Papiergröße ich haben will ???


Gruss fb.

PS: ich habe versucht auf die Website zu kommen, die in deiner Signatur steht, die existiert nicht :-(

Ergänzung:

Ich habe mit

Code:
getCanoncialMediaNames
die Papierformate ermittelt,
wenn ich dann sage:
Code:
oAcadDoc.ActiveLayout.CanoncialMediaName= "ISO_A2_(594.00_x_420.00_MM)"

Dann bekomme ich einen Laufzeitfehler. :-(

[Diese Nachricht wurde von facebraker am 23. Mrz. 2009 editiert.]

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


Ex-Mitglied

erstellt am: 23. Mrz. 2009 14:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Du hast in der VBA-Hilfe ein Beispiel für GetCanonicalMediaNames, und wenn du das richtige in der Liste gefunden hast, kannst Du das dem Layout zuweisen.

Siehe z.B. hier (3.ter Beitrag), ist ein kleines Beispiel von Auflisten und Zuweisen.

- alfred -

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 23. Mrz. 2009 15:06    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 alfred,

ich habe es versucht, bekomme aber einen Laufzeitfehler/ falsche Eingabe.

Hier mein Code, muss ich dem Layout noch einen Plotter zuweisen?

Code:
Sub test_plott()
Dim oACAD As AcadApplication
Set oACAD = AcadApplication
Dim oAcadDoc As AcadDocument
Dim names As Variant
       
Set oAcadDoc = oACAD.Documents.Open("c:\arbeitsverzeichnis\zeichnung.dwg")

oAcadDoc.ActiveLayout.PlotType = acExtents

'For Each names In oAcadDoc.ActiveLayout.GetCanonicalMediaNames
'Debug.Print names
'
'Next names
oAcadDoc.ActiveLayout.CanonicalMediaName = "ISO_A1_(594.00_x_841.00_MM)"
'oAcadDoc.Plot.PlotToDevice "Adobe PDF.pc3"
oAcadDoc.Plot.PlotToDevice "DesignJet 1050C.pc3"


oAcadDoc.SaveAs ("C:\arbeitsverzeichnis\zeichnung_ex.dwg")

oAcadDoc.Close
End Sub


Ansonsten habe ich es ja fast so gemacht wie in deinen empfohlenen Links, oder?

Außer das ich den MediaType als String angebe, war nur zu faul ein Array zu füllen ;-)

Gruss Alex

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


Ex-Mitglied

erstellt am: 23. Mrz. 2009 15:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ich hab's mir jetzt nicht angesehen, aber der Sinn hinter dem 'durchscannen' der MediaNames ist eben, dass man nicht einen zuweist, den es nicht gibt. Und in diesem Fall vermute ich mal, dass Dein angegebener String "ISO_A1_(594.00_x_841.00_MM)" für Adobe-PDF-Drucker vielleicht gar nicht definiert ist.

Sollte das schon so sein, dann lass mich/uns bitte wissen, bei welcher Zeile das Prog den Fehler beanstandet.

- alfred -

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 23. Mrz. 2009 16:01    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 alfred,

ich habe mal noch im internet gestöbert, und hier im forum wieder die Lösung gefunden.
Da ist irgendwas im AutoCAd im argen, wenn man 1 mal in der Sitzung im "Plotten..." drin war, dann kommt der
Laufzeitfehler nichtmehr.
Also im AutoCAD "Datei / Plotten..." geöffnet, geschlossen, mein Programm gestartet, dann ging es.
Ich will es auf dem HP Plotter testen, aber der ist z.Zt. belegt. Daher kann ich für nicht garantieren.

Das mit dem "Durchscannen" ist klar, so habe ich es auch gemacht, bloss ich habe das als "debug-Ausgabe" laufen lassen und dann eine Größe, die ich wollte als String eingetragen.


Im fertigen Programm wird es da eine Combobox geben, auch wegen dem Plotstyles :-)

Im Moment warte ich wann der Plotter frei wird und will testen.

Gruss fb.

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


Ex-Mitglied

erstellt am: 23. Mrz. 2009 16:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,
Zitat:
Im Moment warte ich wann der Plotter frei wird und will testen
Du brauchst aber zum Testen Deines Programms nicht km-weise Papier

Es gibt auch PlotToFile

- alfred -

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 24. Mrz. 2009 11:44    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


acad_plott.jpg

 
Hallo Alfred,

neee, klar kann ich auch in Datei drucken, ich wollte es nur mal auf dem Plotter checken;-)

Ich muss aber gestehen, dass ich heut Morgen die Programmierumgebung gewechselt habe, ich bin auf
VB.NET 2005 und COM gegangen. ich fand es im VBA zu mühseelig mit dem Arrays, mit .NET habe ich
bessere Möglichkeiten im Framework.
Z.B. Mehrere Dateien mit dem FileOpenDialog usw.

Aber an der Syntax und den Objekten ändert sich ja prinzipell nichts, habe den Code 1:1 übernommen, aber anstatt

Code:
set Objekt =

mache ich
Code:
Dim Object as ... = new ...

Das funktioniert auch wunderbar,  aber wenn ich als Drucker den Adobe PDF Printer als pc3 - Datei wähle, bekomme ich bei den Papierformaten, eine lange Liste mit UserXXX (siehe angehängte Datei) ganz unten kommt dann A3 und A4, Letter, aber ich weiß icht was z.B. A0 oder A1 ist.

Weiß jemand was die User - Formate bedeuten, z.b. User166 = A1 oder so?

Wenn ich den Adobe Drucker ohne pc3 nehme dann kommt das gleiche. Aber den pc3 benötige ich schon, weil wir auch User-Spez. Formate haben, z.b. A0 übergroß.

Wenn ich auf einen Plotter, plotte, dann geht es, da krieg ich die Formate angezeigt :-(

Gruss fb.

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

gerhard123
Mitglied
techn.Angestellter


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

Beiträge: 151
Registriert: 29.11.2007

erstellt am: 24. Mrz. 2009 12:40    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 facebraker 10 Unities + Antwort hilfreich

Hallo FB,

ich erstelle auch atomatisiert PDF-Plots.

anbei mirn Progamm mit dem ich arbeite, vielleicht kannst du damit was anfangen.

Public Sub pdfPlot()
  Dim m_oDoc As AcadDocument
  Dim m_oLayout As AcadPlotConfiguration

  Dim dwgPfad, dwgName, strFilename As String
  dwgPfad = ThisDrawing.GetVariable("dwgPrefix") + "DWG\"
  pdfName = Replace(LCase(ThisDrawing.GetVariable("dwgName")), ".dwg", ".pdf")
  strFilename = dwgPfad + pdfName
  Dim oPlotConfig As AcadPlotConfiguration
  Dim strFilename As String
      Dim Layout, plotter, Format, stil, ausrichtung, bereich  As String
      Dim drehen As Integer
      Layout = ThisDrawing.ActiveLayout.Name        'Layoutname
      Format = ThisDrawing.GetVariable("users3")  'Format wir mit Lispprogramm ermittel
      ausrichtung = ThisDrawing.GetVariable("users5") 'Ausrichtung H/Q - Format
      Set m_oDoc = ThisDrawing

On Error Resume Next
    'Set m_oLayout = m_oDoc.PlotConfigurations("Automatic")
    If m_oLayout Is Nothing Then
        Set m_oLayout = m_oDoc.PlotConfigurations.Add("Automatic", False)
    End If
 
Select Case Format
  Case Is = "A4"
    MediaName = "ISO_expand_A4_(210.00_x_297.00_mm)"
  Case Is = "A3"
    MediaName = "ISO_expand_A3_(420.00_x_297.00_mm)"
  Case Is = "A2"
    MediaName = "ISO_expand_A2_(594.00_x_420.00_mm)"
  Case Is = "A1"
    MediaName = "ISO_expand_A1_(841.00_x_594.00_mm)"
  Case Is = "A0"
    MediaName = "ISO_expand_A0_(841.00_x_1189.00_mm)"
End Select


    With m_oLayout
        .ConfigName = "PDF.pc3"
        .CanonicalMediaName = MediaName
        .StyleSheet = "ALLMono.ctb"
        .PlotWithPlotStyles = True
        .PlotWithLineweights = True
        .PlotType = acExtents
        .StandardScale = acScaleToFit
        .CenterPlot = True
        .PlotRotation = ac0degrees
       
        '.PlotRotation = ac0degrees
    End With
   
  Err.Clear
   
    On Error Resume Next
    Set oPlotConfig = m_oDoc.PlotConfigurations.Add("Temp", False)
    On Error GoTo errEnde
   
        oPlotConfig.CopyFrom m_oDoc.ActiveLayout
        m_oDoc.ActiveLayout.CopyFrom m_oLayout
       
        m_oDoc.Plot.PlotToFile strFilename
        m_oDoc.Plot.NumberOfCopies = 1
        'm_oDoc.Plot.PlotToDevice
        Dim DOC As AcadDocument
        Dim z As Integer
        z = 0
    m_oDoc.ActiveLayout.CopyFrom oPlotConfig
    oPlotConfig.Delete
errEnde:
    Err.Clear
     
End Sub

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

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 24. Mrz. 2009 14:14    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 Gerhard,

ich habe mir mal dein Programm angesehen, aber das was ich wissen will ist leider nicht drin,
so wie ich den unten zitierten Teil intepretiere, wird mit einem Lisp-Programm das das Format zurückgibt
und dieses dann im Plot setzt, mir fehlt aber das Lisp-Programm.

Zitat:
Original erstellt von gerhard123:

      Format = ThisDrawing.GetVariable("users3")   'Format wir mit Lispprogramm ermittel
      ausrichtung = ThisDrawing.GetVariable("users5") 'Ausrichtung H/Q - Format
Select Case Format
  Case Is = "A4"
     MediaName = "ISO_expand_A4_(210.00_x_297.00_mm)"
  Case Is = "A3"
     MediaName = "ISO_expand_A3_(420.00_x_297.00_mm)"
  Case Is = "A2"
     MediaName = "ISO_expand_A2_(594.00_x_420.00_mm)"
  Case Is = "A1"
     MediaName = "ISO_expand_A1_(841.00_x_594.00_mm)"
  Case Is = "A0"
     MediaName = "ISO_expand_A0_(841.00_x_1189.00_mm)"
End Select

Wo ich immernoch am zweifeln bin, wenn ich von dem Adobe PDF Plotter die CanoncialMediaNames ermittele,
dann kommen die Formate  wie oben in dem Screen-Shot User134,User173 ...
Ich kann nicht sehen, welches Format das ist z.b. ISO_A4_(210.00_x_297.00_MM, das sind eigentlich
die Infos, die ich benötige, der User kann sich unter User134 nichts vorstellen.


Hoffe ich denke nicht zu kompliziert.


Gruss fb.

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

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 24. Mrz. 2009 15:29    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

Verdammt dass ist so frustrierend,

man ist so kurz vorm Ziel und kommt nicht weiter.
Wenn ich doch nur müßte wie ich die Ausgelesenen Medianames des Adobe PDF Plotters
in ein logisches Format bekomme.

Ich versuche grad mit Reverse Engineering ranzukommen, ich versuche die "userXXX" Medianames zu
drucken und gucke im Adobe welche größe dann die Seite hat :-(

User134 ... kommt Fehler beim plotten
User173 ... 190,5 * 254,0mm
User32767 ... 210,0 * 297,0mm = A4
User148 ... kommt Fehler beim plotten


Aber das kann doch nicht der richtige Weg sein?

Gruss fb.

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

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 24. Mrz. 2009 17:14    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


papiermaße.zip

 
Guten Abend,

ich habe es jetzt per Reverse Engineering ermittelt,
ich setze dass dann in meinem VB Programm als Matrix um, ich fülle die
Combobox mit dem lokalisierten Namen, eventuell noch die Maße und bevor
ich plotte setze ich sie in User... um.

Anbei noch eine Excel-Tabelle mit der Matrix, viell. kann sie irgendwann
jemand gebrauchen und muß sich nicht die Mühe machen :-)

Schönen Abend noch!

Gruss fb.

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


Ex-Mitglied

erstellt am: 26. Mrz. 2009 07:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

und weil ich gestern ein ähnliches Problem hatte, anbei noch ein CodeSchnippsel. Den Fehler den ich hatte, war eine Paarung aus Windows-XP (SP2), Adobe PDF-Drucker und AutoCAD 2007, da konnte man zwar in den Druckereinstellungen ein Seitenformat definieren, z.B. A0q (für A0 Querformat), wenn man dieses dann im Plotterdialog ausgewählt hat, war zwar das Papierformat A0q sichtbar, aber zeigte in der Graphik (kleine Rahmenvoransicht im Plotdialog) dann andere Dimensionen an. Also werden die Namen der Seiteneinrichtungen und die Abmessungen irgendwie falsch zueinander ausgewertet.

Das passierte übrigends nicht auf Win2003-Server und auch nicht auf VISTA (jeweils auch mit AutoCAD 2007).

Code:
'im folgenden wird <tPaperFormatName> mit A0h, A0q, A1h, A1q etc als Parmameter übergeben und damit wird geprüft, ob aus der Liste der verfügbaren Seiteneinrichtungen ein Format übereinstimmt.
            Dim tRetVal as Boolean = False
            For i As Integer = LBound(tMediaNames) To UBound(tMediaNames)
              PlotConfig.CanonicalMediaName = tMediaNames(i)    'papierformat festgelegt

              PlotConfig.GetPaperSize(tPageSizeX, tPageSizeY)
              tBorderLength = tPageSizeX + tPageSizeY
              Select Case Mid(tPaperFormatName, 2, 1)
                  Case "0" : If Math.Abs(tBorderLength - (1189 + 841)) < 5 Then tRetVal = True
                  Case "1" : If Math.Abs(tBorderLength - (841 + 594)) < 5 Then tRetVal = True
                  Case "2" : If Math.Abs(tBorderLength - (594 + 420)) < 5 Then tRetVal = True
                  Case "3" : If Math.Abs(tBorderLength - (420 + 297)) < 5 Then tRetVal = True
                  Case "4" : If Math.Abs(tBorderLength - (297 + 210)) < 5 Then tRetVal = True
              End Select
              If tRetVal Then
                  tRetVal = False
                  'dann pruefen wir auch noch das layout
                  Select Case Mid(tPaperFormatName, 3, 1).ToUpper
                    Case "Q" : tRetVal = (tPageSizeX > tPageSizeY)
                    Case "H" : tRetVal = (tPageSizeY > tPageSizeX)
                  End Select
              End If

              If tRetVal Then Exit For
            Next


Vielleicht hilfts nochmal, - alfred -

------------------
www.hollaus.at



Hardwareentwickler Fluid Sensorik (m/w/d)

Inter­national präsent und erfolg­reich setzt die familien­geführte ifm?Unter­nehmens­gruppe seit 1969 höchste Qualitäts­standards und tech­nische Meilen­steine in der Automati­sierungs­branche.

An unserem Standort in Tettnang am Bodensee suchen wir Sie bei der ifm prover gmbh als

Hardwareentwickler Fluid Sensorik (m/w/d)

Kennziffer: 2024-2933


Sie wollten schon immer ?
....

Anzeige ansehenEntwicklung
facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 26. Mrz. 2009 08:32    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 Alfred,

ja das hilft sehr, danke Dir!!!

Gruss fb.

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