|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Exklusives EDU-Programm für RTX PRO Blackwell, eine Pressemitteilung 
 | 
| Autor | Thema:  vlax-safearray->list dynamische Blöcke (1730 mal gelesen) | 
 | Steff179 Mitglied
 Geomatiker
 
   
 
      Beiträge: 266Registriert: 09.08.2007
 AutoCAD 2014 |    erstellt am: 05. Mai. 2011 10:32  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo zusammen Es geht mir um dynamische Blöcke mit Sichtbarkeitsparameter.Schon wider der sch... Sichtbarkeitsparameter
  (setq a (vlax-ename->vla-object (car (entsel))))(setq b (vlax-variant-value(vla-getdynamicblockproperties a)))
 (setq array (vlax-safearray->list b))
 Bei normalen Blöcken kommt die Fehlermeldung.
 ActiveX-Server hat einen Fehler zurückgegeben: Ungültiger Index
 Habe mir jetzt mal mit
 (vlax-safearray-get-u-bound b 1)
 geholfen. Sollte eigentlich die Indexlänge ausgeben so weit ich das nach der Hilfe interpretiere. Wenn kleiner 0 ist der safearray lehr und kann nicht umgeformt werden.
 Sehe ich das richtig? Danke für die Mühe und Gruss
 Steff Wenn ich keinen dynamischen Block wähle, erzeugt das schreiben in eine Liste einen error.
 Ich weiss nicht wie ich den Savearray prüfen könnte ob der in eine Liste geschriben werden kann.
 Die Blöcke nach "*U" aussortieren ist nicht das gelbe vom Ei, da Blöcke welche schon abgesetzt sind und durch den Blockeditor einen Sichtbarkeitsparameter bekommen, welcher nicht umgestellt wird noch keinen "*U" eintrag haben.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Dorfy Mitglied
 Double-Dipl.-Ing. Bleistiftanspitzer
 
    
 
      Beiträge: 900Registriert: 21.07.2006
 AutoCad2007, ProE, HiCad |    erstellt am: 05. Mai. 2011 11:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für Steff179   
  na nimm doch vlax-safearray-get-u-bound... und ne schleife... Code:(setq i (vlax-safearray-get-l-bound b 1))
 (while (<= i (vlax-safearray-get-u-bound b 1))
 (setq c (vlax-safearray-get-element b i))
 ;mach was...
 (print (strcat (vla-get-PropertyName c) " --> "))
 (princ (vlax-variant-value (vla-get-value c)))
 (setq i (1+ i))
 )
 
 ------------------Mfg Heiko
  Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."
 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: 2154Registriert: 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: 05. Mai. 2011 11:56  <-- editieren / zitieren -->    Unities abgeben:           Nur für Steff179   | 
                        | Steff179 Mitglied
 Geomatiker
 
   
 
      Beiträge: 266Registriert: 09.08.2007
 AutoCAD 2014 |    erstellt am: 05. Mai. 2011 11:57  <-- editieren / zitieren -->    Unities abgeben:            
  Danke Heiko Hat mir sehr geholfen. Hab noch so meine Probleme mit Arrays     Gruss @Henning
 vl-catch-all-apply
 Die Idee hatte ich auch, aber irgendwie tue ich mich noch recht schwer damitt, werde es aber auch mal ausprobieren. Danke auch [Diese Nachricht wurde von Steff179 am 05. Mai. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 05. Mai. 2011 12:16  <-- editieren / zitieren -->    Unities abgeben:           Nur für Steff179   | 
                        | Steff179 Mitglied
 Geomatiker
 
   
 
      Beiträge: 266Registriert: 09.08.2007
 AutoCAD 2014 |    erstellt am: 05. Mai. 2011 14:59  <-- editieren / zitieren -->    Unities abgeben:            
  Bei einem normalen Block (vlax-method-applicable-p vla-obj 'getdynamicblockproperties) = T Bei einem Dynamischen Block (vlax-method-applicable-p vla-obj 'getdynamicblockproperties) = T Was mir nicht viel weiterhilft und in meinen Augen total schräg ist. Da der ja keine Properties haben sollte. Kein Plan.... Oder habe ich die Idee falsch verstanden? Aber mit der Methode von Heiko gibts ja auch keine errors, was die abfrage eigentlich erübrigt, mich aber trozdem nicht in ruhe lässt.
 [Diese Nachricht wurde von Steff179 am 05. Mai. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Dorfy Mitglied
 Double-Dipl.-Ing. Bleistiftanspitzer
 
    
 
      Beiträge: 900Registriert: 21.07.2006
 AutoCad2007, ProE, HiCad |    erstellt am: 05. Mai. 2011 15:30  <-- editieren / zitieren -->    Unities abgeben:           Nur für Steff179   | 
                       
 | Steff179 Mitglied
 Geomatiker
 
   
 
      Beiträge: 266Registriert: 09.08.2007
 AutoCAD 2014 |    erstellt am: 05. Mai. 2011 15:53  <-- editieren / zitieren -->    Unities abgeben:            |