• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Dynamische Blöcke: Auswahl über ssget "_W"

  • Ersteller Ersteller Vincenzo_O
  • Erstellt am Erstellt am

Vincenzo_O

Guest
Bye to all,
Ich bin ein Neophyt der Lispe, also nehmen Sie Geduld.
Ich versuche, eine Routine zu betreiben, die einen dynamischen Block an einem bestimmten Punkt des Papierraums auswählt und den aktuellen Wert des Blocks in einer Variablen immectiert.
unter dem Code, den ich ab dem von lee mac geändert habe, funktioniert nicht und ich verstehe nicht, warum.
jede Hilfe ist gut akzeptiert, danke.


(defun lm:getdynpropvalue)
(setq prp (strcase prp)
(vl-some '(lambda (x)) (if (= prp (strcase (vla-get-propertyname x))))))))
(vlax-invoke blk 'getdynamicblockproperties)
)
)

(defun c:02test ( / und x)

(setq ppp (getpoint "\n\tpick höher linke Ecke\t [bleicht]: ")

(setq x (nth 0 ppp)
(setq y (nächste 1 ppp)

(Setq x1 (+ x 20.72)
(setq y1 (- y 9.37)

(Setq x2 (+ x 3.3)
(setq y2 (- y 7.85)

(falls (sowie (setq und (ssget "_w" (list x1 y1)))
(= "Insert" (cdr (assoc 0)))
)
(Druck (Setq x (lm:getdynpropvalue)
)
(princ)
)
 
die Syntax, ein Objekt aus einem Objekt zu extrahieren gruppo di SDie Wahl ist wie folgt: (Name gs indice), wo Index eine ganze Zahl ist, die die Elemente unterscheidet, ist das erste Element Null.

daher (Name gs 0) gibt den ersten Teil der Gruppe zurück, (Name gs 3) zurück zum vierten.

in Ihrem Fall diese Änderung des Codes (setq e (ssname (ssget "_w" (list x1 y1) (list x2 y2)) 0)
gibt den Namen des ersten Objekts der Auswahlgruppe zurück, aber ein Problem könnte entstehen, wenn "entrückte" Objekte mehr als eins waren.um die Anzahl der Objekte in einer Auswahlgruppe zu überprüfen (Länge GS)
 
grazie mille gp.

Ich modifizierte es il codice tenendo conto delle tun indicazioni e chiarimenti. tutto ok adesso.
bu feste a tutti.

(defun lm:getdynpropvalue)
(setq prp (strcase prp)
(vl-some '(lambda (x)) (if (= prp (strcase (vla-get-propertyname x)))))
(vlax-invoke blk 'getdynamicblockproperties')
)
)

(defun c:02test ( / e x )
(vl-load-com)

(setq ppp (getpoint "\n\t***\tpick höher linke Ecke\t** \n : "))

(setq x (nth 0 ppp))
(setq y (nächste 1 ppp))

(Setq x1 (+ x 22.32))
(setq y1 (- y 9.6)

(Setq x2 (+ x 3.3)
(setq y2 (- y 7.5))

(Setq Auswahl (ssget "_w" (list x1 y1))
(setq ent(ssname Auswahl 0))
(setq vl-obj ent)
(setq valore (cdr (assoc 0))
(setq xx (lm:getdynpropvalue (vlax-ename->vla-object vl-obj) "fornitore"))

(princ)
)
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben