| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON Whitepaper: Konfigurationsprozess - durchgängig und zukunftsweisend, ein Whitepaper
|
Autor
|
Thema: Maßstab auslesen über c#/Dotnet (4819 mal gelesen)
|
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 12:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Ich möchte gerne den aktuellen Maßstab aus einer (aktiven) DWG-Zeichnung auslesen und diesen im nächsten Schritt ändern (über C#/Dotnet). Leider finde ich keine passende Methode, wie ich das hinbekommen könnte. Im Forum fand ich einige LISP-Beispiele, die mir aber nicht den aktuellen Maßstab anzeigen. Könnt ihr mir einen Tipp geben, wie ich bei einer aktiven Zeichnung an den Maßstab komme und diesen ändern kann? Vielen Dank im Voraus. Gruß Mechatrox [Diese Nachricht wurde von mechatrox am 01. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 01. Nov. 2011 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
Hallo Mechatrox, willkommen hier bei CAD.de! Die meisten (alle?) werden mit Deiner Fragestellung ein Problem haben. Eine Zeichnung (Datei) hat KEINEN Maßstab. Den Maßstab legst Du Dir fest, indem Du das Verhältnis der Zeicheinheiten zu reelen Größen vorgibst. Ein Quadrat mit der Seitenlänge 1 kann demnach 1µm, 1m oder 1AE groß sein. Maßstäbe gibt es nur in Ansichtsfenstern. Und von denen gibt es normalerweise mehrere (hundert) in einer Zeichnung. ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 12:53 <-- editieren / zitieren --> Unities abgeben:
Ok, ich korrigiere: Ich habe keine Zeichnung, sondern eine Karte von einem Land, bei der man den (benutzerdefinierten) Maßstab ändern kann. Nachdem man einen neuen Maßstab eingegeben hat, wird die Karte entspr. dem Maßstab dargestellt. Der Zoom befehl bringt mir wenig, da ich über diesen nur vergrößern oder verkleinern kann und nicht weiß wie der aktuelle Maßstab (oder wie auch immer man das nennt) lautet. An diesen benutzerdefinierten Maßstab möchte ich gerne rankommen, nur weiß ich nicht wie. [Diese Nachricht wurde von mechatrox am 01. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 01. Nov. 2011 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
Hallo Mechatrox, wie Lutz schon sagte, ist die Sache nicht so einfach. Ein Ansichtsfenster(-objekt) eines Layouts besitzt einen Ansichtsfenstermaßstab. Den solltest Du aus den Eigenschaften des Ansichtsfenster rausbekommen. Das nützt Dir aber zunächst wenig. Wenn Du nicht weißt, in welchen Zeicheneinheiten (ZE) im Modell und im Layout gearbeitet wird, bist Du nicht wirklich weiter. Ein Beispiel: im Modellbereich wird mit 1 ZE = 1 m gezeichnet, im Layout arbeitet man mit 1 ZE = 1 mm, dann bedeutet ein Ansichtsfenstermaßstab von 1:1 eine Darstellung von 1:1000. Arbeitest Du im Modell und im Layout mit mm bringt der gleiche Ansichtsfenstermaßstab eine Darstellung von 1:1. Und dann kann ich aber im Layout z. B. auch in cm arbeiten (oder Fuß, Zoll usw.) Und das ist m.E. nirgends fixiert sondern obliegt dem Anwender. Und selbst wenn in der Zeichnung als "Zeicheneinheit" "Meter" angegeben ist, muss sich der Nutzer noch lange nicht dran halten. HTH Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 01. Nov. 2011 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
hi, jetzt versteh ich nur Bahnhof... Einerseits sprichst du von Zoom und andererseits von Maßstäben. Da du ACAD Map 3d benutzt wärst du mit deiner Frage ggf. hier besser aufgehoben mit deiner Fragestellung. LG Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 14:26 <-- editieren / zitieren --> Unities abgeben:
@Thomas: das ist mir alles klar. Meine Frage lautet: Über welches Event/welche Funktion kann ich den Benutzerdefinierten Maßstab ändern bzw. auslesen? Oder gibt es keine Funktion, die diese Variable (wenn es überhaupt eine ist) auslesen kann? @Susi: Ich verwende die Zoom-Funktion (z.B. "_zoom m 3498377.303,5570708.288 100.0") um bei einer initial geladen Karte zu einem gewissen Punkt auf einer Karte zu springen. Da sich alle Autocad-Produkte ähneln, denke ich, dass ich hier schon richtig aufgehoben bin. Es ist "vermutlich" eine generelle Funktionalität in Autocad. [Diese Nachricht wurde von mechatrox am 01. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 01. Nov. 2011 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
|
susi79 Mitglied Verm.techn. / Bauzeichner
Beiträge: 359 Registriert: 15.09.2009 HP Notebook: Vista HP*Intel Core 2 duo*4GB RAM*NVIDIA GeForce 9600M GT*AutoCAD (Architecture) 2010 / 2011
|
erstellt am: 01. Nov. 2011 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
hi, _zoom mit der Option m heißt ja lediglich, dass du die danach angegebene Koordinate auf dem Bildschirm zentrierst. Was du wisssen willst ist mit welchem Verkleinerungs- oder Vergrößerungsfaktor das geschieht liege ich da richtig? Wo genau änderst du denn den (benutzdefinierten) Maßstab? Befindest du dich im Modell- oder Papierbereich? Ist es ein Ansichtsfenster? und?, und?, und? Du mußt schon mehr als das bisher Beschriebene bringen... LG Susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 14:54 <-- editieren / zitieren --> Unities abgeben:
|
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 01. Nov. 2011 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
Hallo mechatrox, also falls Du den aktuellen Ansichtsfenstermaßstab eines Ansichtsfensters (AF) meinst: wie Du den in c#/Dotnet auslesen kannst, keine Ahnung. Aber vielleicht hilft Dir ja folgende Info weiter: die Größe des Ansichtsfensters ist in den Gruppencodes (GC) des AF gespeichert. GC 40 und 41 enthalten die Breite und die Höhe des AF in ZE des Layoutbereiches, der GC 45 enthält die Höhe des in AF sichtbaren Bereiches des Modells in ZE des Modellbereiches. Aus dem Verhältnis zwischen GC 41 und 45 kann also der Maßstab des AF berechnet werden. HTH Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
E-Boy Ehrenmitglied V.I.P. h.c. Elektroinstallateurmeister
Beiträge: 2731 Registriert: 23.06.2005 Autocad MEP 2019 E-Tools Win 10
|
erstellt am: 01. Nov. 2011 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 01. Nov. 2011 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
|
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 15:31 <-- editieren / zitieren --> Unities abgeben:
@Udo Hübner: wenn ich den Befehl CAnnoScaleValue aufrufe bekomme ich die Meldung CANNOSCALEVALUE = 0.100000000 (schreibgeschützt), wenn ich den Befehl CAnnoScale ausführe und einen Maßstab eintrage, tut sich gar nix. Also bringt mich das leider nicht weiter. Trotzdem Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 15:44 <-- editieren / zitieren --> Unities abgeben:
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 01. Nov. 2011 15:52 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
Hallo, zum Verständnis: Willst Du die Darstellung im MODELLBEREICH so einstellen dass sie auf dem BILDSCHIRM im Maßstab erscheint? (so würde ich es jetzt verstehen) Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 15:58 <-- editieren / zitieren --> Unities abgeben:
@wronzky: Ja, im Modellbereich. Der Maßstab wird schon in Autocad unten Rechts dargestellt. Wenn ich auf ihn drauf klicke, kann ich über "Benutzerspezifisch" -> "Maßstabwert eingeben" diesen ändern. Wie komme ich programmiertechnisch an diesen Maßstab ran, der dort dargestellt wird? Im nächsten Schritt würde ich gerne diesen programmiertechnisch über C# ändern. Wenn ich aber an den aktuellen Maßstab rankomme, kann ich diesen über den Befehl "zoom" ändern und mir den neuen errechnen. Somit genügt eigentlich nur das auslesen des aktuellen Maßstabes in der Modellansicht aus. Wie komme ich über vba, c# oder welche Programmiersprache auch immer da ran? [Diese Nachricht wurde von mechatrox am 01. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 01. Nov. 2011 16:05 <-- editieren / zitieren --> Unities abgeben:
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 01. Nov. 2011 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
... ist nicht Autocad, ist MAP, damit bin ich raus... Aber vielleicht hilft Dir noch das: - mit "viewsize" kannst Du dir die Höhe (in Einheiten) Deines Bildschirmfensters holen. - mir "screensize" bekommst Du die Pixelausdehnung unter der Voraussetzung, dass Dein Bildschirm mit 96 dpi läuft, kannst Du Dir aus den Werten die benötigte Vergrößerung / Verkleinerung berechnen. Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de [Diese Nachricht wurde von wronzky am 01. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 01. Nov. 2011 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
Zitat: Original erstellt von wronzky: ... unter der Voraussetzung, dass Dein Bildschirm mit 96 dpi läuft, kannst Du Dir aus den Werten die benötigte Vergrößerung / Verkleinerung berechnen.
Befehl: (/ (getvar "viewsize")(/ (cadr (getvar "screensize"))(/ 96.0 25.4))) Ergibt den von AUtoCAD MAP angezeigten Maßstabswert. Setzen kann man den Maßstabswert über die Zoomfunktion (mit Faktor - muss ebenfalls geeignet berechnet werden).
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 02. Nov. 2011 08:25 <-- editieren / zitieren --> Unities abgeben:
|
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 02. Nov. 2011 10:38 <-- editieren / zitieren --> Unities abgeben:
Weiß jemand von euch wie ich Befehle aus der Konsole auslesen kann? Über den Befehl "(/ (getvar "viewsize")(/ (cadr (getvar "screensize"))(/ 96.0 25.4)))" erhalte ich den korrekten Maßstab. Jetzt müsste ich diesen über C#/Dotnet auslesen können. Wie ich einen Befehl an Autocad sende, weiß ich (über SendStringToExecute()), aber wie kann ich Meldungen aus der Konsole auslesen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
erstellt am: 02. Nov. 2011 19:48 <-- editieren / zitieren --> Unities abgeben: Nur für mechatrox
|
mechatrox Mitglied Informatiker
Beiträge: 16 Registriert: 01.11.2011 Autocad Map 3D 2012 64/32 Bit Windows 7 64 Bit + XP Mode 32 Bit
|
erstellt am: 03. Nov. 2011 12:44 <-- editieren / zitieren --> Unities abgeben:
|