Ik heb honderden externe blocks (*.dwg) die alle eenzelfde "attribute definition" hebben, dus met eenzelfde "tag", nl. tag "1001". Echter, de "prompts" van die "attribute definitions" zijn leeg. (zie bijlage 1)
Ik zoek nu een manier (LISP) om die "prompts" in al deze blocks automatisch in te vullen met eenzelfde tekst, nl. "Component nr." (zie bijlage 2)
Heeft iemand een kant en klare oplossing, of een aanzet in de goede richting?
Het geliefde babe van joop zou een uitkomst kunnen bieden.
Samen met een lisproutine baarbij je de attribute selecteerd en dan de wijigingen doet.
Zal morgen even naar kijken.
Als ik een antwoord heb dan laat ik je dat weten...
Verstuurd vanaf mijn LG-E975 met Tapatalk
Om je alvast op weg te helpen:
;;; Attribute aanpassen
(vl-load-com)
(defun c:att_change_prompt ( / e o PromptString )
(setq e (car (entsel))
(setq o (vlax-ename->vla-object e))
(vla-put-PromptString o "Vul hier de nieuwe prompt in"))
(princ)
)
Gebruik het comando "att_change_prompt" om de lisp uit te voeren.
Babe is hier te vinden:
http://www.cadsite.be/tips/BaBe.zip
Bedankt Eddy!
'k heb ondertussen 2 "oplossingen":
1. met LISP code:
(setq #OldEntData (entget (ssname (ssget "x" '((-4 . "<or") (2 . "1001") (-4 . "or>"))) 0)))
(setq #OldPrompt (assoc 3 #OldEntData))
(setq #NewPrompt (cons 3 "Component nr."))
(setq #NewEntData (subst #NewPrompt #OldPrompt #OldEntData))
(entmod #NewEntData)
2. met LISP en VLISP code:
(vla-put-PromptString (vlax-ename->vla-object (ssname (ssget "x" '((-4 . "<or") (2 . "1001") (-4 . "or>"))) 0)) "Component nr.")