Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Zugriff auf Gruppen-Elemente

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:  Zugriff auf Gruppen-Elemente (865 mal gelesen)
tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1213
Registriert: 30.05.2002

AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net

erstellt am: 05. Dez. 2011 15: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 !

unter Einbeziehung der Gruppen-Zugriffsfunktionen aus http://ww3.cad.de/foren/ubb/Forum145/HTML/000019.shtml#000017 habe ich eine Funktion erstellt mit welcher ich auf die Elemente von Gruppen zugreifen möchte.

Code:

(if group_name
  (progn
    (princ "\ngroup_name: ")
    (princ group_name)
    (princ "\n\n")
    (command "_.select" "_group" group_name "")
    (setq aws_group (ssget "_p"))
    ;; Auslesen der Gruppenelemente
    (while (setq aws_group_ele (ssname aws_group (setq idx (1+ idx))))
      (princ "\naws_group_ele: ")
      (princ aws_group_ele)
      (princ "\n\n")
    ) ;end-while
  ) ;end-progn
) ;endif

Nun habe ich das Problem das als Elemente der Gruppe immer dieselben Objekte gelistet werden:

Zitat:
group_name: (*A24)
aws_group_ele: <Objektname: 7ffffb0a460>
aws_group_ele: <Objektname: 7ffffb0a450>

group_name: (*A25)
aws_group_ele: <Objektname: 7ffffb0a460>
aws_group_ele: <Objektname: 7ffffb0a450>


Das merkwürdige ist nur das in einer kleinen Testfunktion - bei der ich den Namen der Gruppe übergebe - ist das kein Problem:

(defun test100 (group_name / )
  (princ "\nTestfunktion")
  (princ "\nGruppenname: ")(princ group_name)
              (command "_.select" "_group" group_name "")
      (setq aws_group (ssget "_p")
    idx -1)
      ;; Auslesen der Gruppenelemente
      (while (setq aws_group_ele (ssname aws_group (setq idx (1+ idx))))
          (princ (entget aws_group_ele))
                  (princ "\n\n")
      );end-while
  );end-defun
(princ )

Irgendwie habe ich den Eindruck als wenn ich irgendwie im Wald stehe.

Kann mir einer von Euch weiterhelfen ?

Gruß Jan :-)

------------------
jan :-)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 05. Dez. 2011 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 tappenbeck 10 Unities + Antwort hilfreich

Also ich würd da gar nicht über (Command "_select"..) gehen , sondern die Gruppe über (vla-item(vla-groups .. ermitteln und die Objekte dann via (vlax-for ITEM GROUP ermitteln ....

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1213
Registriert: 30.05.2002

AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net

erstellt am: 05. Dez. 2011 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

Hallo Thomas,

dann meinst Du als Basis sicherlich

http://forums.augi.com/showthread.php?t=120913

Werde mich mal durchkämpfen obwohl ich mit vl noch nicht so bewandert bin.

Gruß Jan :-)

------------------
jan :-)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 05. Dez. 2011 21: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 tappenbeck 10 Unities + Antwort hilfreich

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 05. Dez. 2011 23:05    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 tappenbeck 10 Unities + Antwort hilfreich

wenn du das ganze ohne vl machen willst:
Code:

(defun DictListAll (Root / DictRoot GrpList Temp)
  (setq DictRoot (entget Root))
  (while DictRoot
    (setq Temp (if (= (caar DictRoot) 3)
                (list (cons (cdr (car DictRoot))(cdr (cadr DictRoot))))
              )
          DictRoot (cdr DictRoot)
    )
    (setq GrpList (append GrpList Temp))
  )
)


mit
Code:

(setq lst (DictListAll (cdr (assoc "ACAD_GROUP" (dictlistall (namedobjdict))))))


bekommst du eine assoziierte liste in der form
(("GroupName1" . <Objektname: xxx>;) ("GroupName2" . <Objektname: yyy>;) ...)

und mit

Code:

(apply 'append (mapcar '(lambda(x) (if (= (car x) 340) (list (cdr x)))) (entget (cdr (assoc "gewuenschter Gruppenname" lst)))))


bekommst dann deine einzelnen elemente als liste anhand des gewuenschten gruppennamens.

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 06. Dez. 2011 08:07    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 tappenbeck 10 Unities + Antwort hilfreich

... aber immer schön überprüfen, ob das Element auch noch existiert und nicht nur noch sein "Handle" im Gruppendictionary ! 

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 06. Dez. 2011 08:38    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 tappenbeck 10 Unities + Antwort hilfreich

Zitat:
...aber immer schön überprüfen...

... wer macht denn sowas?

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1213
Registriert: 30.05.2002

AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net

erstellt am: 08. Dez. 2011 13:14    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 !

danke für die Hilfestellungen - Problem gelöst!

gruß Jan :-)

------------------
jan :-)

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