| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Plot-Modus feststellen (1111 mal gelesen)
|
Josefus Mitglied Ingenieur
Beiträge: 23 Registriert: 22.03.2006 Windows 10, 64 bit AUTOCAD 2019 c++ mit objectarx MS Visual Studio 2017
|
erstellt am: 25. Aug. 2015 16:51 <-- editieren / zitieren --> Unities abgeben:
Wie kann ich feststellen, dass man sich gerade im Plotmodus befindet? Unter ACAD2010 habe ich z.B. so unterschieden: Code: void CMyClass::subViewportDraw(AcGiViewportDraw* pMode) { AcGiViewport &vPort = pMode->viewport(); Adesk::LongPtr nVpID = vPort.viewportId(); if (4294967295 == nVpID) { // Plotmodus, z.B. Plotvorschau ... } }
Unter AutoCAD2014 erhalte ich immer 0. Oder gibt es einen besseren Weg? Vielen Dank im Voraus, Josefus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 27. Aug. 2015 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für Josefus
|
Josefus Mitglied Ingenieur
Beiträge: 23 Registriert: 22.03.2006 Windows 10, 64 bit AUTOCAD 2019 c++ mit objectarx MS Visual Studio 2017
|
erstellt am: 28. Aug. 2015 16:10 <-- editieren / zitieren --> Unities abgeben:
CommandInProgress scheint für .NET zu sein. Habe jetzt in ObjectArx folgendes versucht: Code:
struct resbuf buf; acedGetVar (L"CMDACTIVE", &buf); short resInt = buf.resval.rint; if (1 == resInt) { //Plotmodus }
Ich befürchte allerdings Fehleranfälligkeit, da ja nicht genau das Plot-Kommando identifiziert werden kann Gibt es noch etwas besseres? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 28. Aug. 2015 16:52 <-- editieren / zitieren --> Unities abgeben: Nur für Josefus
Man kann prüfen, was der laufende Befehl ist. Kann sein PLOT,PUBLISH,PREVIEW (vielleicht noch *EXPORT) oder applikationsspezifische Befehle, die Plotten. Nur dass ein Befehl aktiv ist, das ist richtig, das ist kein Zeichen dafür, dass gerade Plot oder Plotvoransicht aktiv ist. ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Josefus Mitglied Ingenieur
Beiträge: 23 Registriert: 22.03.2006 Windows 10, 64 bit AUTOCAD 2019 c++ mit objectarx MS Visual Studio 2017
|
erstellt am: 03. Sep. 2015 15:08 <-- editieren / zitieren --> Unities abgeben:
|
Josefus Mitglied Ingenieur
Beiträge: 23 Registriert: 22.03.2006 Windows 10, 64 bit AUTOCAD 2019 c++ mit objectarx MS Visual Studio 2017
|
erstellt am: 27. Okt. 2015 13:51 <-- editieren / zitieren --> Unities abgeben:
Jetzt noch eine Anschlussfrage: während das PLOT-Kommando aktiv ist, konnte ich bisher abfragen, ob die Plotausgabe gegenüber dem Modell gedreht ist (Hoch- Querformat) mittels: Code:
AcDbPlotSettings::PlotRotation rot; rot = lo->plotRotation() ;
mögliche Rückgabewerte waren (aus dbplotsettings.h): Code: enum PlotRotation { k0degrees, k90degrees, k180degrees, k270degrees };
Ab objektarx_2014 bekomme ich immer 0 zurück. Ist da ein Bug bekannt oder kann ich das anders abfragen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |