Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  mehrere Objekte wählen!!!

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:  mehrere Objekte wählen!!! (2269 mal gelesen)
Einstein
Mitglied
Zerspanungsmechaniker-Drehtechnik


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

Beiträge: 94
Registriert: 20.02.2005

erstellt am: 17. Dez. 2005 16: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

Hallo, ich bins noch mal,

hab doch noch eine Frage. Vor wenigen Minuten gab mit "startrek" bereits eine Antwort (Siehe vorherigen Eintrag von mir). Doch eine Frage hab ich noch:

Die Routiene die Sie mir als Beispiel gaben funktioniert wunderbar, doch wie programmiert man das so, dass man mehrere Volumenkörper in AutoCad markiert und sie anschließend mit ENTER bestätigt???
In der beispiel Routiene kann man ja nur ein Volumenkörper wählen, nach dessen Markierung, der Code automatisch weiter "geht".

------------------
MfG  A. Einstein   

P.S. Rechtschreibefehler sind gewollt und dienen der allgemeinen Belustigung!

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 17. Dez. 2005 16:39    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 Einstein 10 Unities + Antwort hilfreich

Hallo Du nochmal;-)

hätts wissen müssen, also wenn Du mehrere Objekte wählen willst,
geht das mit dem Object 'AcadSelectionSet'.
Setz Dir mal einfach ein F1 auf das Schlüsselwort, oder suche hier
mal nach Selectionset, hier nur ein kurzer Ansatz:

Code:

Sub xxx()
  Dim sset As AcadSelectionSet
  Dim ent As AcadEntity
  Set sset = ThisDrawing.SelectionSets.Add("MySet")
  sset.SelectOnScreen
  For Each ent In sset
    'if typename(ent) ... then machwas
  Next
  'am Ende sset löschen
  sset.Delete
End Sub

Gruss Nancy
             

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: 17. Dez. 2005 16: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 Nur für Einstein 10 Unities + Antwort hilfreich

Hallo Einstein,

du musst ein Selectionset anlegen. Dann kannst du dieses mit einer Userasuwhal füllen und auswerten. Im Beispiel wird eine Einschränkung für den Anwender mitgegeben. Er kann nur Blöcke auswählen. Wenn du anstatt "Insert" deinen gewünschten Elementtyp engibst, kann er nur diesen Elementtyp auswählen. Läßt du xType und xData weg, kann er alle Elemente wählen.

Code:

Dim ogac_Sset as acadselectionset

Sub Auswahl()
    Dim olac_Entity as AcadEntity
    Dim xType(0) As Integer
    Dim xvalue(0) As Variant

    ' Selektionset anlegen
    On Error Resume Next
    Set ogac_Sset = ThisDrawing.SelectionSets("MySelset")
    If Err.Number Then
       ' Wenn noch nicht vorhanden
       Set ogac_Sset = ThisDrawing.SelectionSets.Add("MySelset")
    End If
    on error goto 0
   
    ' Filter setzen
    ' Dann kann nur der gewünschte Elementyp gewählt werden
    xType(0) = 0
    xvalue(0) = "Insert"
    ogac_Sset.SelectOnScreen xType, xvalue

    for each olac_Entity in ogac_Sset
        ' Auswertung
        debug.print olac_Entity.layer

    next olac_Entity
End Sub


Stelli

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

[Diese Nachricht wurde von Stelli1 am 17. Dez. 2005 editiert.]

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

Einstein
Mitglied
Zerspanungsmechaniker-Drehtechnik


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

Beiträge: 94
Registriert: 20.02.2005

erstellt am: 17. Dez. 2005 19: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

Danke für die nützlichen Antworten,
ich hab die guten Vorschläge gleich umgesetzt und siehe da, es funtioniert.

Doch wie ich es bereits kenne, kommt nach der Lösung des einen Problems gleich das nächste, welches wie folgt aus sieht:

Als ich meine fertige Routine in ein UserForm einbetten wollte, wo  man auf einen Button klickt, welcher "Objekte auswählen" heißt, meldet mit AutoCad nach klicken des Buttons "AutoCad Fenster ist nicht sichtbar!". Ich vermute das ich nicht auf den AutoCad Bildschirm wechseln kann, da das UserForm bereits angezeigt wird.

Nun die Frage, wie löse ich dieses Problem? Ich hab bereits nach Eigenschaften des UserForms gesucht in denen man das UserForm deaktiviert, aber das funktioniert nicht!

Bitte helft mir!!!

------------------
MfG  A. Einstein   

P.S. Rechtschreibefehler sind gewollt und dienen der allgemeinen Belustigung!

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: 17. Dez. 2005 20:40    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 Einstein 10 Unities + Antwort hilfreich

Hallo Einstein,

mit me.hide kannst du die Form zur Auswahl verbergen.
Nach der Auswahl wieder mit formname.show anzeigen.

Stelli

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

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 17. Dez. 2005 20:48    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 Einstein 10 Unities + Antwort hilfreich

ungetestet ...,

man kann eine UF in zweierlei Arten aufrufen,
einmal modal=true [default], d.h. solange die Form aktiv ist,
hast du keinerlei Interaktivität zur Acad-Oberfläche, dies ist gegeben bei:

Code:

Userform1.show '[1==modal==default bei ohne Angabe]


Du kannst die UF aber [ab vb6.0 bzw. acad2000i] nonmodal aufrufen,
d.h. währenddessen die Form da ist, kannst du Usereingaben machen.
Dann Modal auf False [0] setzen:
Code:

Userform1.show 0 '[oder statt 0 - false]


Ich hoffe ich hab jetz nix verdreht und darauf in etwa lief die Frage hinaus;-)

Gruss, Nancy
--
Microsoft's definition of a boolean: TRUE, FALSE, MAYBE "Embrace and extend"...?
                 

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 17. Dez. 2005 21: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 Einstein 10 Unities + Antwort hilfreich

Hallo nochmal,

Stelli hat Recht, mit me.Hide und .show gehts auch,
da ein .hide die Form im Speicher behält, bei nem umload me ist 'Feierabend';-)

@stelli: immer wieder nett im Duett :-)

lg Nancy
         

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