| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Seite einrichten mittels VBA (4769 mal gelesen)
|
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 14. Mrz. 2005 15:10 <-- editieren / zitieren --> Unities abgeben:
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ..., einige AutoCADs 200x & SWX 2kX
|
erstellt am: 14. Mrz. 2005 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
SchnippSchnapp: Code:
Sub Example_CanonicalMediaName() ' This example finds the name of the media for the active layout Dim MediaName As String MediaName = ThisDrawing.ActiveLayout.CanonicalMediaName If MediaName = "" Then MsgBox "There is no media set for the active layout." Else MsgBox "The media for the active layout is: " & MediaName End If End Sub
------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 14. Mrz. 2005 15:52 <-- editieren / zitieren --> Unities abgeben:
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 14. Mrz. 2005 19:53 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
Hallo Heiko, Guckst du hier: Dim p1(0 To 1) As Double Dim p2(0 To 1) As Double p1(0) = 0 p1(1) = 0 p2(0) = 420 p2(1) = 297 ThisDrawing.ActiveLayout.CanonicalMediaName = "A3" ThisDrawing.ActiveLayout.StyleSheet = "monochrome.ctb" ThisDrawing.ActiveLayout.StandardScale = ac1_1 ThisDrawing.ActiveLayout.PlotType = acWindow ThisDrawing.ActiveLayout.CenterPlot = True ThisDrawing.ActiveLayout.SetWindowToPlot p1, p2 ThisDrawing.ActiveLayout.PlotRotation = 1 Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 14. Mrz. 2005 22:58 <-- editieren / zitieren --> Unities abgeben:
|
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 15. Mrz. 2005 07:17 <-- editieren / zitieren --> Unities abgeben:
Hi Carsten, hab es jetzt getestet. Sagt mir aber ungültige Eingabe bei der ersten Zeile (ThisDrawing.ActiveLayout.CanonicalMediaName = "A3" ) Das nimmt er so nicht an. Das macht der bei jeder ThisDrawing.ActiveLayout Zeile... ------------------ cu Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Abele Mitglied
Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 15. Mrz. 2005 07:38 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
Hallo, das Problem hab ich auch oft. Meistens klappt es, wenn Du das Plotfenster einmal in der AutoCAD-Sitzung geöffnet gehabt hast. Probier das mal. Ansonsten kann es eventuell sein das Dein A3 nicht "A3" heißt? Du kannst Dir ja mal alle Formatnamen auflisten lassen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 15. Mrz. 2005 12:24 <-- editieren / zitieren --> Unities abgeben:
|
Abele Mitglied
Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 15. Mrz. 2005 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
|
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 15. Mrz. 2005 15:12 <-- editieren / zitieren --> Unities abgeben:
|
Abele Mitglied
Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 16. Mrz. 2005 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
Hi. Normalerweise schon. einfach ausprobieren. Dürfte kein Problem darstellen. Ich lasse mir in solchen Fällen immer vom VBA die möglichen Einstellungen auflisten. Dann siehst Du genau was Du auswählen kannst. Viele Grüße Ralph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002 Win10 64bit Autodesk Produkte 2018 VB.net / Powershell
|
erstellt am: 18. Mrz. 2005 10:04 <-- editieren / zitieren --> Unities abgeben:
|
LuLan Mitglied Konstrukteur
Beiträge: 15 Registriert: 27.08.2008 Solidworks 09 Autocad Architecture 2009
|
erstellt am: 12. Apr. 2010 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
Hallo! Also dieser Beitrag hat mir sehr geholfen, ich kann jetzt A5 A4 und A3 Blattformate einstellen. Allerdings funktionieren andere Blattformate nicht (ich bräuchte A1). Ich habe mir auch schon alle Blattformate zeigen lassen aber ich kann einfach nichts anderes einstellen. Hier ein kleiner Auszug aus der Liste
ISO_A1_(841.00_x_594.00_MM) ISO A1 (841.00 x 594.00 mm) ISO_A1_(594.00_x_841.00_MM) ISO A1 (594.00 x 841.00 mm) ISO_expand_A2_(594.00_x_420.00_MM) ISO expand A2 (594.00 x 420.00 mm) ISO_expand_A2_(420.00_x_594.00_MM) ISO expand A2 (420.00 x 594.00 mm) ISO_A2_(594.00_x_420.00_MM) ISO A2 (594.00 x 420.00 mm) ISO_A2_(420.00_x_594.00_MM) ISO A2 (420.00 x 594.00 mm) ISO_expand_A3_(420.00_x_297.00_MM) ISO expand A3 (420.00 x 297.00 mm) ISO_expand_A3_(297.00_x_420.00_MM) ISO expand A3 (297.00 x 420.00 mm) ISO_A3_(420.00_x_297.00_MM) ISO A3 (420.00 x 297.00 mm) ISO_A3_(297.00_x_420.00_MM) ISO A3 (297.00 x 420.00 mm) ISO_expand_A4_(297.00_x_210.00_MM) ISO expand A4 (297.00 x 210.00 mm) ISO_expand_A4_(210.00_x_297.00_MM) ISO expand A4 (210.00 x 297.00 mm) ISO_A4_(297.00_x_210.00_MM) ISO A4 (297.00 x 210.00 mm) ISO_A4_(210.00_x_297.00_MM) ISO A4 (210.00 x 297.00 mm) Hat da jemand eine Lösung für mich?
greez Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Apr. 2010 14:43 <-- editieren / zitieren -->
Hi, solang ich den Code nicht sehe, kann ich aber auch nicht sagen, was ev. falsch läuft. Ich gehe davon aus, dass Du die Liste aus den CanonicalMediaNames des richtigen Ausgabegeräts erzeugen hast lassen, oder? - alfred - ------------------ www.hollaus.at |
LuLan Mitglied Konstrukteur
Beiträge: 15 Registriert: 27.08.2008 Solidworks 09 Autocad Architecture 2009
|
erstellt am: 12. Apr. 2010 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
Ich habe das Example aus der Hilfe genommen Seltsamer weise funktioniert eben A5 A4 und A3 obwohl es in der Liste nicht angeführt ist, darum hab ich im pc3 nachgesehen wie die Blattformate heißen und die sind aber als A3 A2 usw benannt Hier mein code Private Sub layout_test() Dim FPLay As AcadLayout Dim media As Variant 'create and activate layout Fundamentplan Set FPLay = ThisDrawing.Layouts.Add("Fundamentpunkte") ThisDrawing.ActiveSpace = acPaperSpace ThisDrawing.ActiveLayout = FPLay 'Set correct Plotoptions ThisDrawing.ActiveLayout.CanonicalMediaName = "A3" 'es funktioniert nur A5 bis A3 ....ka warum ThisDrawing.ActiveLayout.StyleSheet = "LLBT_ADI.ctb" und hier der code aus der hilfe: (leider hab ich nicht herausgefunden wie ich nur die vom aktuellen Drucker bekomme) Sub Example_GetLocaleMediaName() ' This example gets the current plot device information ' and then displays the list of plot device names, ' media names, localized media names, and plot style ' table entries. Dim Layout As ACADLayout Set Layout = ThisDrawing.ModelSpace.Layout ' Refresh the current plot information for ' this session. Layout.RefreshPlotDeviceInfo ' List all the valid device names for the system Dim plotDevices As Variant plotDevices = Layout.GetPlotDeviceNames() Dim x As Integer For x = LBound(plotDevices) To UBound(plotDevices) MsgBox plotDevices(x) Next ' List all the media names, and their localized version Dim mediaNames As Variant mediaNames = Layout.GetCanonicalMediaNames() For x = LBound(mediaNames) To UBound(mediaNames) MsgBox mediaNames(x) MsgBox Layout.GetLocaleMediaName(mediaNames(x)) Next ' List all the entries in the plot style table Dim styleNames As Variant styleNames = Layout.GetPlotStyleTableNames() For x = LBound(styleNames) To UBound(styleNames) MsgBox styleNames(x) Next End Sub grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Apr. 2010 16:30 <-- editieren / zitieren -->
Hi, zuerst musst Du das PC3-File setzen, sonst wird's auch nichts mit den Device-spezifischen MediaNames: tLayoutCOM.RefreshPlotDeviceInfo() tLayoutCOM.ConfigName = PlotConfigName 'da muss die PC3-Datei eingesetzt werden tLayoutCOM.RefreshPlotDeviceInfo() Dim tMediaName As String For Each tMediaName In tLayoutCOM.GetCanonicalMediaNames If ucase(tLayoutCOM.GetLocaleMediaName(tMediaName)) like "*A1*" Then tLayoutCOM.CanonicalMediaName = tMediaName Exit For End If Next HTH, - alfred -
------------------ www.hollaus.at [Diese Nachricht wurde von a.n. am 12. Apr. 2010 editiert.] |
LuLan Mitglied Konstrukteur
Beiträge: 15 Registriert: 27.08.2008 Solidworks 09 Autocad Architecture 2009
|
erstellt am: 12. Apr. 2010 16:57 <-- editieren / zitieren --> Unities abgeben: Nur für Heiko76
|