| |
 | TRICAD MS Piping 3D - Effizient Apparate- und Rohrleitungsmodelle planen , eine App
|
Autor
|
Thema: DGNLIB Toolbox (2486 mal gelesen)
|
B44 Mitglied

 Beiträge: 26 Registriert: 13.09.2008 Windows XP MicroStation 8.09.04.88 de MS-Office 2007 de
|
erstellt am: 15. Mrz. 2009 18:34 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich möchte bei benutzerdefinierten Funktionen unter Befehlsdaten Eingabe einen Befehl wie z. B. „set fill on“ anwenden. Damit dieser in allen Fenstern das Ansichtsattribut Ausfüllen automatisch einschaltet. Gruß B44 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stark Mitglied Dipl.Informatiker
  
 Beiträge: 680 Registriert: 27.06.2001 MicroStation V8i auf Windows 7 + 8.1
|
erstellt am: 16. Mrz. 2009 14:44 <-- editieren / zitieren --> Unities abgeben:          Nur für B44
Dann mach das doch Im Ernst: 1. Eine Aussage zu formulieren ist nicht besonders geschickt, wenn man eine Frage beantwortet haben möchte. Wo liegt also das Problem, was hindert Dich daran zu tun , was Du willst ? 2. vom fachlichen Standpunkt aus, gehe ich anhand Deiner Aussage davon aus, das Du eine DGNLib geöffent hast, das Du eine Toolbox angelegt hast, und jetzt wissen möchtest, wie Du dem Befehl 'set fill on' die Ansichten übergeben kannst. Das geht, indem Du 'selview [viewnummer]' als nächstes Kommando absetzt, Kommandos werden mit ; abgetrennt, also 'set fill on;selview 1;selview 2;...'. Anzumerken bleibt nur, das der Modus danach in der Ansichtsauswahl 'hängen' bleibt, hier hilft nur zum Abschluss ein entsprechendes anderes Kommando, wie z.B. 'select' anzustarten. HTH Michael
------------------ Wer's nur glaubt, weiß es nicht ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
B44 Mitglied

 Beiträge: 26 Registriert: 13.09.2008 Windows XP MicroStation 8.09.04.88 de MS-Office 2007 de
|
erstellt am: 23. Mrz. 2009 14:45 <-- editieren / zitieren --> Unities abgeben:         
Hallo Michael, besten Dank für deine Hilfe, es funktioniert perfekt. Schade das kein Befehl wie z. B. „selview all“ zur Verfügung steht, somit wurde der Syntax etwas länger. Bei meinem Beitrag habe ich meinen Gedankengang niedergeschrieben, aber übersehen meine Frage zu stellen. Man(n/Frau) möge es mir verzeihen! Meine Gedanken waren schon im Kurzurlaub. Aber Du hast ja richtig erkannt, wo mein Problem lag. Ursprünglich wollte ich die Einstellung der Ansichtsattribute mit einem aufgezeichneten Makro vornehmen und mit dem Befehl „vba run AutoAusfuellen“ in meiner Toolbox starten. Es werden zwar mit meinem Makro die entsprechenden Häkchen gesetzt, aber keine Ansichtsaktualisierung vorgenommen, wie wenn das Häkchen manuell in Ansichtsattribute Ausfüllen gesetzt wird. AutoAusfuellen.mvba Sub AutoAusfuellen() Dim startPoint As Point3d Dim point As Point3d, point2 As Point3d Dim lngTemp As Long ' Eine mit einem Dialogfeld verbundenen Variable einstellen SetCExpressionValue "msDialogState.viewSettingsP->applyToAll", -1, "MGDSHOOK" SetCExpressionValue "msDialogState.viewSettingsP->flags.fill", 1, "MGDSHOOK" CommandState.StartDefaultCommand End Sub Mein Wissen reicht nicht, um hier einen Fehler zu erkennen. Kannst Du mir weiterhelfen? Gruß B44
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stark Mitglied Dipl.Informatiker
  
 Beiträge: 680 Registriert: 27.06.2001 MicroStation V8i auf Windows 7 + 8.1
|
erstellt am: 24. Mrz. 2009 22:42 <-- editieren / zitieren --> Unities abgeben:          Nur für B44
Einfachste Methode, nachdem Du vermutlich auch schon das Makro aufgezeichnet hast: einfach mal auf Ansicht aktualisieren drücken. Dabei kommt dann 'CadInputQueue.SendCommand "UPDATE VIEW EXTENDED 1"' raus. Nun bin ich kein MVBA Spezialist, aber entweder aus der 1 ein all machen, oder direkt auf 'CadInputQueue.SendCommand "UPDATE ALL"' ausweichen, eines von beiden sollte es tun (sonst wieder von 1-8  zumindest im MDL gibt es definitiv kein ALL). HTH Michael ------------------ Wer's nur glaubt, weiß es nicht ! Rechtschreibfehler gibt's gratis  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
B44 Mitglied

 Beiträge: 26 Registriert: 13.09.2008 Windows XP MicroStation 8.09.04.88 de MS-Office 2007 de
|
erstellt am: 27. Mrz. 2009 09:42 <-- editieren / zitieren --> Unities abgeben:         
Danke Michael für deine Anregungen. Ich habe einige Möglichkeiten probiert, mein zuvor genanntes Beispiel funktioniert mit dem Zusatz: CadInputQueue.SendCommand "view previous 1" usw. Gruß B44 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stark Mitglied Dipl.Informatiker
  
 Beiträge: 680 Registriert: 27.06.2001 MicroStation V8i auf Windows 7 + 8.1
|
erstellt am: 27. Mrz. 2009 12:09 <-- editieren / zitieren --> Unities abgeben:          Nur für B44
Allerdings nur, wenn Du das direct beim Öffnen der Zeichnug machst. Sbold nämlich der View verändert wurde bewirkt 'view previous' den Rücksprung zum vorherigen Ausschnitt (entspricht praktisch dem Rückwärts-Button jeder Ansicht. ------------------ Wer's nur glaubt, weiß es nicht ! Rechtschreibfehler gibt's gratis  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
B44 Mitglied

 Beiträge: 26 Registriert: 13.09.2008 Windows XP MicroStation 8.09.04.88 de MS-Office 2007 de
|
erstellt am: 28. Mrz. 2009 16:53 <-- editieren / zitieren --> Unities abgeben:         
Uuuppps! Es hatte zwar immer gepasst, muss aber jedes Mal reiner Zufall gewesen sein. Irgendwann wäre es in die Hosen gegangen. Michael danke für deinen Hinweis. Habe es nun wie folgt zu lösen versucht. Sub AutoAusfuellen() Dim startPoint As Point3d Dim point As Point3d, point2 As Point3d Dim lngTemp As Long CadInputQueue.SendKeyin "set fill on" CadInputQueue.SendKeyin "selview 1" CadInputQueue.SendKeyin "selview 2" CadInputQueue.SendKeyin "selview 3" CadInputQueue.SendKeyin "selview 4" CadInputQueue.SendKeyin "selview 5" CadInputQueue.SendKeyin "selview 6" CadInputQueue.SendKeyin "selview 7" CadInputQueue.SendKeyin "selview 8" CadInputQueue.SendKeyin "update all" CommandState.StartDefaultCommand End Sub Gruß B44
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |