|  |  | 
|  | 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:  Wert von dynamischer Block lesen? (1171 mal gelesen) | 
 | Nano Mitglied
 
 
   
 
      Beiträge: 179Registriert: 25.10.2004
 |    erstellt am: 01. Feb. 2009 13:24  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Versuche von Ein dynamischer Block die Werte zu lesen,ändern, geht sehr gut (siehe Beispiel)
 (setq Kanal (car (entsel)))(setProperty (vlax-ename->vla-object Kanal) "Kanal-Breite" 500.0)
 (setProperty (vlax-ename->vla-object Kanal) "Kanal-Länge" 1000.0)
 (setProperty (vlax-ename->vla-object Kanal) "Kanal-Isolation" "EI30")
 (setProperty (vlax-ename->vla-object Kanal) "Kanal-Winkel" 0.0)
 Gruss Nano??? Vielleicht >>(vlax-variant-value (vlax-get-property Kanal) 'Value)
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CAD-Huebner Ehrenmitglied V.I.P. h.c.
 Verm.- Ing., ATC-Trainer
 
 
  
 
      Beiträge: 9812Registriert: 01.12.2003
 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11 |    erstellt am: 01. Feb. 2009 14:25  <-- editieren / zitieren -->    Unities abgeben:           Nur für Nano   
 Zitat:Original erstellt von Nano:
 Hallo
 Versuche von Ein dynamischer Block die Werte zu lesen,...??? Vielleicht >>(vlax-variant-value (vlax-get-property Kanal) 'Value)
 
 Ja, vielleicht! Sollen wir das für dich ausprobieren, da dir am Wochenende kein Rechner zur Verfügung steht? Dann stelle doch bitte eine Zeichnung mit deinem Block zur Verfügung. ------------------Mit freundlichem Gruß
 Udo Hübnerwww.CAD-Huebner.de
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Nano Mitglied
 
 
   
 
      Beiträge: 179Registriert: 25.10.2004
 |    erstellt am: 01. Feb. 2009 15:04  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | CAD-Huebner Ehrenmitglied V.I.P. h.c.
 Verm.- Ing., ATC-Trainer
 
 
  
 
      Beiträge: 9812Registriert: 01.12.2003
 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11 |    erstellt am: 01. Feb. 2009 16:04  <-- editieren / zitieren -->    Unities abgeben:           Nur für Nano   
 Code:(defun c:ListblkProps( / blkrefObj blkProps)
 (setq blkrefObj (vlax-ename->vla-object (car (entsel))))
 (setq blkProps (vlax-safearray->list
 (vlax-variant-value
 (vla-GetDynamicBlockProperties blkrefObj))))
 (foreach blkProp blkProps
 (print (vla-Get-PropertyName blkProp))
 (print (vlax-variant-value (vla-get-Value blkProp)))
 )
 )
 
 ------------------Mit freundlichem Gruß
 Udo Hübnerwww.CAD-Huebner.de
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Nano Mitglied
 
 
   
 
      Beiträge: 179Registriert: 25.10.2004
 |    erstellt am: 01. Feb. 2009 16:55  <-- editieren / zitieren -->    Unities abgeben:            
  hallo Udo Kannst Du mir erklären, warum ich die Kanal-Breite nicht ändern kann.Habe hier ein kleines LISP.
 (DEFUN C:kbr()(command "_Insert" "kanal4" (setq pt (getpoint "Einfügepunkt: ")) "" "" "")
 (SETQ object (entlast))
 (SETQ breite (GETDIST "Wert für Breite: "))
 (setProperty (vlax-ename->vla-object object) "Kanal-Breite" breite)
 )
 Gruss Nano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CAD-Huebner Ehrenmitglied V.I.P. h.c.
 Verm.- Ing., ATC-Trainer
 
 
  
 
      Beiträge: 9812Registriert: 01.12.2003
 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11 |    erstellt am: 01. Feb. 2009 17:26  <-- editieren / zitieren -->    Unities abgeben:           Nur für Nano   
 Zitat:Original erstellt von Nano:
 hallo Udo
 Kannst Du mir erklären, warum ich die Kanal-Breite nicht ändern kann.Habe hier ein kleines LISP.
 (DEFUN C:kbr()(command "_Insert" "kanal4" (setq pt (getpoint "Einfügepunkt: ")) "" "" "")
 (SETQ object (entlast))
 (SETQ breite (GETDIST "Wert für Breite: "))
 (setProperty (vlax-ename->vla-object object) "Kanal-Breite" breite)
 )
 Gruss Nano 
 Was genau macht denn die Funktion setProperty?Lege bitte von dieser Funktion noch den Quelltext bei.
 
 ------------------Mit freundlichem Gruß
 Udo Hübnerwww.CAD-Huebner.de
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Nano Mitglied
 
 
   
 
      Beiträge: 179Registriert: 25.10.2004
 |    erstellt am: 01. Feb. 2009 17:41  <-- editieren / zitieren -->    Unities abgeben:            
  Sory das ist es. (defun setProperty (vlaDynBlock sPropertyName rValue / vlaProperty)(foreach vlaProperty (vlax-safearray->list (vlax-variant-value (vla-GetDynamicBlockProperties vlaDynBlock)))
 (if (= (vla-get-PropertyName vlaProperty) sPropertyName)
 (vla-put-value vlaProperty (vlax-make-variant rValue))
 ); end if
 ); end foreach
 ); end defun
 Nano 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: 01. Feb. 2009 18:42  <-- editieren / zitieren -->    Unities abgeben:           Nur für Nano   
  Hi, wenn dein Block vorhanden ist und eingefügt wurde, die Schreibweise von Kanal-Breite richtig ist (groß/klein), ein Wert für Breite eingegeben wurde, dann sollte es funktionieren. Versuch mal in einer neuen Zeichnung oder starte mal ACad neu... mfg Heiko Edit: eins zwei Worte mehr was net geht bzw. Fehlermeldungen sind oft auch hilfreich [Diese Nachricht wurde von Dorfy am 01. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |