Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Ereignis beim Layer/Bemstil wechsel

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 15. Mrz. 2004 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo kann mir jemand sagen wie man das Ereignis beim Layer/Bemstil wechsel abfragen kann?
Parralel dazu evtl. bei folgendem Problem weiter helfen:
http://ww3.cad.de/foren/ubb/Forum54/HTML/006686.shtml

Es geht darum immer die richtige Bemaßung zum richtigen Layer zu haben, bzw. andersherum.

------------------
Gruß Dressler

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 15. Mrz. 2004 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 16. Mrz. 2004 07:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 17. Mrz. 2004 18:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 18. Mrz. 2004 08:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Karsten HST an!   Senden Sie eine Private Message an Karsten HST  Schreiben Sie einen Gästebucheintrag für Karsten HST

Beiträge: 54
Registriert: 22.04.2003

erstellt am: 18. Mrz. 2004 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich


LayerSwitched.zip

 
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



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 18. Mrz. 2004 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

@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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz