| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: min/max einer Liste nach count property (925 mal gelesen)
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 10. Jul. 2009 08:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich habe eine Liste mit vla-objects, auf welche ich vla-get-count (count property) anwenden kann. (All Collections, Block, Dictionary, Group, Materials, SelectionSet, SectionManager) Eigentlich suche ich das Objekt mit den wenigsten bzw. meisten Datenelementen (items) bei der geringsten Laufzeit. Beispiel Blöcke: Blockliste erstellen ;;;;;;;;;;;;;;;;;;;;;;;;;; (defun blockliste (/ b>list) (vlax-for b (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)) ) (if (= (vla-get-islayout b) :vlax-false) (setq b>list (cons b b>list)) ) ) b>list ) ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Getestet: ;;;;;;;;;;;;;;;;;;;;;;;;;; (defun test1 (lst / result) (setq result (car (vl-sort lst '(lambda (x1 x2) (> (vla-get-count x1) (vla-get-count x2)) ) ) ) ) result ) ;;;;;;;;;;;;;;;;;;;;;;;;;; (defun test2 (lst / result leng merker) ;;bis dato immer am schnellsten (foreach elem lst (setq leng (vla-get-count elem)) (if (< merker leng) (setq merker leng result elem ) ) ) result ) ;;;;;;;;;;;;;;;;;;;;;;;;;; Geht das noch schneller für max(min)(brauche keine geordnete Liste) oder hat jemand ne Erklärung warum die nicht ganz so „schöne“ Version Test2 am schnellsten ist. Mfg Heiko
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 10. Jul. 2009 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für Dorfy
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 10. Jul. 2009 08:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Henning, erstmal Danke für die Antwort aber (apply 'max (mapcar 'vla-get-count lst)) (apply 'min (mapcar 'vla-get-count lst)) liefert mir nur den min/max Wert, ich suche das zugehörige Objekt. mfg heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 10. Jul. 2009 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für Dorfy
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 10. Jul. 2009 09:06 <-- editieren / zitieren --> Unities abgeben:
Hi Henning, ja das hat ich auch schon, siehe test1, ist aber nicht ganz so schnell wie test2. (zumindest was ich so getestet habe ) Aber dennoch Danke für's mitgrübeln. mfg heiko [Diese Nachricht wurde von Dorfy am 10. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 10. Jul. 2009 09:13 <-- editieren / zitieren --> Unities abgeben: Nur für Dorfy
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 10. Jul. 2009 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für Dorfy
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 10. Jul. 2009 09:56 <-- editieren / zitieren --> Unities abgeben:
|