Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Doppelklick

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
Autor Thema:  Doppelklick (1499 mal gelesen)
BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 10. Nov. 2005 11:02    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

Hi Forum,
ich würde gerne bei Doppelklick (oder rechter Mausklick) auf einen Block ein userdefiniertes Formular öffnen. Läßt sich das per VBA realisieren (in Lisp kenne ich mich leider nicht aus)
Bernd

------------------

Bernd

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 10. Nov. 2005 12:27    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 BerndE 10 Unities + Antwort hilfreich

Hallo Bernd,

etwa so:
Event auswerten.

Code:

Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant)
Dim sset As AcadSelectionSet

    Set sset = fgac_SelectionSet
    sset.Clear
    sset.SelectAtPoint PickPoint
    If sset.Count > 0 Then
      ' Meldung ausgeben oder Form öffnen
      MsgBox sset(0).ObjectName & " wurde gewählt"
    End If

End Sub

Private Sub AcadDocument_BeginRightClick(ByVal PickPoint As Variant)

End Sub

Public Function fgac_SelectionSet() As AcadSelectionSet
Dim tmpSelSet As AcadSelectionSet
    On Error Resume Next
    Set tmpSelSet = ThisDrawing.SelectionSets("MySelSet")
    If Err.Number <> 0 Then
      Set tmpSelSet = ThisDrawing.SelectionSets.Add("MySelSet")
    End If
    On Error GoTo 0
    Set fgac_SelectionSet = tmpSelSet
   
End Function



Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 10. Nov. 2005 14:42    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

Hi Stelli,
ja...so würde ich es mir vorstellen, nur...
und soweit kam ich in der OH. aber wenn ich bei mir in der zeichnung ein doppelklick auf einen block mit attributen mache, geht das "attribute bearbeiten"-fenster auf. Ist es kein block, wird mir <ändern> <xref u. block in zeichn. bearbeiten> angeboten. bei text kann ich den text editieren und bei sonstigen elementen wird mir das eigenschaftsfenster angezeigt.

bei rechtem mausklick geht das kontextmebü auf und wenn ich unter optionen das kontxtmenü abschalte, wird der letzt befehl wiederholt.

wie stelle ich es an, daß
Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant)
oder
Private Sub AcadDocument_BeginRightClick(ByVal PickPoint As Variant)
auf bei den entsprechenden ereigissen auch abgearbeitet wird?
bernd

------------------

Bernd

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 10. Nov. 2005 15:13    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 BerndE 10 Unities + Antwort hilfreich

Komisch, bei mir gings auf Anhieb. Ich hab Interesse halber mal Stelli's VBA Code in ein Dokumentenmodul Thisdrawing kopiert  und sofort wurde mir der Objekttyp beim Doppelklick angezeigt, auch bei Blockreferenzen mit Attributen. Danach kam dann zusätzlich der EATTEDIT Dialog.

Grundsätzlich kann man den Doppelklickmodus von AutoCAD ja auch abschalten.

Code:

Befehl: DPKLIBEARB
Doppelklick-Bearbeitungsmodus eingeben [Ein/Aus] <Ein>:

------------------
Mit freundlichem Gruß

Udo Hübner

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 10. Nov. 2005 16:22    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 BerndE 10 Unities + Antwort hilfreich

Hallo,
Zitat:
Original erstellt von CAD-Huebner:
..VBA Code in ein Dokumentenmodul Thisdrawing kopiert  und sofort wurde mir der Objekttyp beim Doppelklick angezeigt..

hast du den Code in ein normales Modul kopiert ?

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 10. Nov. 2005 16:43    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

jo..hab ich gemacht...dann probier ichs jetzt mal so wie du bze cad-huebner sagt.
danke schonmal
bernd

------------------

Bernd

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 10. Nov. 2005 17:12    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

Ja...ich danke euch beiden,
habe es jetzt im Dokumentenmodul eingefügt und es reagiert wie gewünscht.
nur wie kann ich jetzt das formualr aufrufen?
einfach mit        Load frmTuer
                    frmTuer.Show

funktioniert es nicht. da kommt der laufzeitfehler 424 "Objekt erforderlich"
Außerdem: wenn  ich den code im dokumentenmodul abspeicher, muss ich das dann bei jeder zeichung tun die ich öffne? das projekt kann ich ja allgemein mit autcad laden...aber wie bekomme ich deinen code dann in die zeichnung?
eines noch...entschuldigt meine dusseligen frage. vba für access und excel habe ich gut drau. in acad hab ich zwar mal was programmiert, ist aber ewig her
Bernd

------------------

Bernd

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 10. Nov. 2005 17:18    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

AAA...ich habs schon selber rausgefunden....
nicht in thisdrawing der zeichnung sondern in this drawing der acad.dvb

DAanke euche beiden
bernd

------------------

Bernd

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 11. Nov. 2005 00:22    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

Hi...
ein problem ist aber doch noch geblieben.
wie kann ich aus der acad.dvb auf meine in einem anderen projekt geschriebenen codes und formulare zugreifen?
bernd

------------------

Bernd

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 11. Nov. 2005 10:25    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 BerndE 10 Unities + Antwort hilfreich


dvb.jpg

 
Hallo Bernd,

du brauchst den Code nicht in verschiedene dvb verteilen.

Die Ereignisbehandlung (Doppelclick etc.) gehört in das Modul Thisdrawing. Die Function fgac_SelectionSet() gehört in ein normales Modul (fgac_ = Funktion Global AutoCAD).
In diesem Modul definiertst du ein globales Objekt "ogac_Entity".

Code:

Public ogac_Entity as AcadEntity

Public Function fgac_SelectionSet() As AcadSelectionSet
Dim tmpSelSet As AcadSelectionSet
    On Error Resume Next
...



In der Ereignis Behandlung belegst du dieses Objekt mit deiner Auswahl
Code:

Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant)
Dim sset As AcadSelectionSet
    Set sset = fgac_SelectionSet
    sset.Clear
    sset.SelectAtPoint PickPoint
    If sset.Count > 0 Then
      ' Meldung ausgeben oder Form öffnen
      ' MsgBox sset(0).ObjectName & " wurde gewählt"
      set ogac_Entity = sset(0)
      frmAuswertung.show 1
    End If

End Sub



In die FrmAuswertung (unter Userformulare) kannst du dann im Event UserForm_Initialize kannst du dann die Auswertung vornehmen.

Code:

Private Sub UserForm_Initialize()
    ....   
    If ogac_Entity Is Nothing Then Exit Sub
    ogac_Entity.GetXData "IS_VBATOOL", xdataType, xdataValue
    If VarType(xdataType) = vbEmpty Then
       Me.Caption = "Keine Information zur Linie"
    Else
       If UBound(xdataValue) = 14 Then
    ....

Stelli

------------------
Warum lisp'eln wenn's auch anders geht. 

[Diese Nachricht wurde von Stelli1 am 11. Nov. 2005 editiert.]

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 11. Nov. 2005 10:27    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

vielen lieben Dank
Bernd

------------------

Bernd

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 22. Nov. 2005 13: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

Hallo,
ich muss dieses thema leider nochmal aufwärmen.

den rechten Mausklick auf einen mit Attributen versehenen Block benutze ich, um ein userdefiniertes Formular aufzurufen.

Folgender Code soll bewirken, daß ein Doppelklick nicht das Fenster Attribute bearbeiten öffnet.

Code:
Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant)
Dim sset As AcadSelectionSet
    Set sset = fgac_SelectionSet
    sset.Clear
    sset.SelectAtPoint PickPoint
    If sset.Count > 0 Then
        For Each item In ThisDrawing.SelectionSets("MySelSet")
            If item.EntityName = "AcDbBlockReference" Then
               If itemname <> "TTyp" Then Exit Sub
            End If
        Next item
        MsgBox "Zum Editieren des Türstempels bitte AUSSCHLIESSLICH die rechte Maustaste benutzen!", vbInformation + vbOKOnly, "Hier kein Doppelklicken möglich"
    End If
End Sub

Leider wird zwar die Messagebox angezeigt, aber im Anschluß daran auch das "Attribute bearbeiten"-Fenster geöffnet. Wie kann ich das verhindern?

------------------

Bernd

[Diese Nachricht wurde von BerndE am 22. Nov. 2005 editiert.]

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 22. Nov. 2005 18:26    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 BerndE 10 Unities + Antwort hilfreich

Hallo Bernd,

das kann ich dir auch nicht genau sagen. Ich arbeite eigentlich nicht damit. Bei der rechten Taste kann man einiges ins Kontextmenü bringen. Da braucht man die Events gar nicht abfangen.

Ich würde mal folgendes probieren:

Zitat:
Original erstellt von CAD-Huebner:
Grundsätzlich kann man den Doppelklickmodus von AutoCAD ja auch abschalten.


Befehl: DPKLIBEARB
Doppelklick-Bearbeitungsmodus eingeben [Ein/Aus] <Ein>:



oder mal bei den Events BeginCommand + EndCommand schauen ob man den AutoCAD Befehl stoppen kann.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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)2023 CAD.de | Impressum | Datenschutz