| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Ereignis beim Layer/Bemstil wechsel (1552 mal gelesen)
|
Dressler Mitglied technischer Angestellter
 
 Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 15. Mrz. 2004 12:19 <-- editieren / zitieren --> Unities abgeben:         
|
harryk Mitglied Projektleiter
 
 Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 15. Mrz. 2004 15:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Dressler
hi, nur mal so aus der Hüfte geschossen: Private Sub AcadDocument_BeginCommand(ByVal CommandName As String) If Left(CommandName, 3) = "DIM" Then Dim dimLayer As AcadLayer Set dimLayer = ThisDrawing.Layers("_dim") ThisDrawing.ActiveLayer = dimLayer Set dimLayer = Nothing End If End Sub ins modul ThisDrawing kopieren, Layer muss existieren, vielleicht reichts für ne idee. Würde aber dann nachdem Du weisst das es ein Bemassungsbefehl ist auf eine Funktion verweisen. Wenn Du den Layer mit dem Bemstil umschalten willst ist es vielleicht einfacher die Stilwahl über einen eigenen Dialog laufen zu lassen. Gruss, Harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dressler Mitglied technischer Angestellter
 
 Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 16. Mrz. 2004 07:44 <-- editieren / zitieren --> Unities abgeben:         
Hallo Harry, so wie ich das sehe ist das doch ein Ereignis, wenn die Bemaßung gestartet wird. Ich suche eigeentlich nach dem Ereignis Layerwechsel, oder Bemaßungsstilwechsel. Jeweils mit der Abfrage natürlich welcher Layer/Bemaßungsstil gewählt wurde. Dann könnte man wenn z.B. Layer "bem_1-20" gewählt wurde den BemStil "1-20" aktuell setzen. Ich weiß nur leider nicht wie ich diese Werte abfragen kann, bzw. setzen kann. Sinn und Zweck des ganzen soll ja sein, daß die verschiedenen Bemaßungsstile auf jeweils dem eigenen Layer stehen, damit man in verschiedenen Ansichtsfenstern nur den Layer für den entsprechenden Maßstab sieht. ------------------ Gruß Dressler [Diese Nachricht wurde von Dressler am 16. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
harryk Mitglied Projektleiter
 
 Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 17. Mrz. 2004 18:33 <-- editieren / zitieren --> Unities abgeben:          Nur für Dressler
hi, war ja nur nen gedankenansatz, ich hatte mir sowas vorgestellt war aber zu faul  : Dim currLay As AcadLayer Dim currDimStyle As AcadDimStyle Dim prevLay As AcadLayer Dim prevDimStyle As AcadDimStyle Private Sub AcadDocument_BeginCommand(ByVal CommandName As String) If Left(CommandName, 3) = "DIM" Then Set prevDimStyle = ThisDrawing.ActiveDimStyle End If If CommandName = "LAYER" Then Set prevLay = ThisDrawing.ActiveLayer End If End Sub Private Sub AcadDocument_EndCommand(ByVal CommandName As String) If Left(CommandName, 3) = "DIM" Then Set currDimStyle = ThisDrawing.ActiveDimStyle If prevDimStyle.name <> currDimStyle.name Then MsgBox "Bemassungsstil geändert" End If If CommandName = "LAYER" Then Set currLay = ThisDrawing.ActiveLayer If prevLay.name <> currLay.name Then MsgBox "Layer geändert" End If End Sub klappt leider nicht wenn du über die toolbar gehst. andere alternative: ungebundenens dialogfeld (form.show 0) mit gesteuertem layer-/bemstil wechsel? es gibt noch was mit z.b. "public withevents xLay as acadlayer...", hab ich aber für den layerwechsel bzw. bemstilwechsel noch nicht hinbekommen, ich fürchte die feuern keinen event. aber vielleicht kannst du damit in der hilfe was finden. gruss, harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dressler Mitglied technischer Angestellter
 
 Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 18. Mrz. 2004 08:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo Harry, Danke für Deine Antwort ich versuche mal auf diesem Wege weiter zu kommen. Muß leider aber noch bis zum Wochenende nen anderes Projekt fertig bekommen und nach dem CeBIT Wochenende gehts dann erstmal ne Woche in den Urlaub. Aber danach wird weiter an den Layern/Bemaßungen gearbeitet. ------------------ Gruß Dressler Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Karsten HST Mitglied Bauingenieur

 Beiträge: 54 Registriert: 22.04.2003
|
erstellt am: 18. Mrz. 2004 11:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Dressler
Versuchs doch einmal mit der SysVarChanged-Ereignisprozedur der Klasse AcadApplication. Diese wird immer dann ausgelöst, wenn sich der Inhalt einer Systemvariablen ändert. Ich hab da mal ein Beispiel angehängt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4191 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 18. Mrz. 2004 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Dressler
@Karsten HST, schau mal dort -> http://ww3.cad.de/foren/ubb/Forum54/HTML/006686.shtml @Dressler, sinnvol ist immer, wenn du die Beiträge zum gleichen Thema mit angibst. Dann kann man weiter diskutieren, und klärt nicht wieder die gleichen Fragen. Karsten ist auf die gleiche Lösung wie ich auch gekommen. Diese ist ja aber für dich nicht relevant, da du es ja so möchtest: Wenn dem Bem-Objekt ein anderer Layer oder Bemaßungsstil zugewiesen wird, dann soll die entsprechende Eigenschaft Bemstil oder Layer auch geändert werden. Das ist mit dem SysVar-Reaktor nicht zu machen, da ja beim ändern eines Objektes, keine Sysvar geändert wird. Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |