Re: AutoLispで元のブロックのダイナミックブロック内のパラメータ値を取得することは可能ですか?
Quote:
Originally Posted by
r.jin
図面に挿入した後のブロックから
[GetDynamicBlockProperties メソッド]を使用して値は取得できるのですが、
挿入した元のブロックを
[EffectiveName プロパティ]で元のブロック名を取得し、(entget)を使って
[GetDynamicBlockProperties メソッド]を使用すると、
使い方が間違っているのか、うまく使うことができません。
元のブロック名を取得して・・・ということは、ブロック参照(Blockref)ではなく、
ブロック(Block)に対して行おうとしているからではないですかね?
LISPは詳しくないので分かりませんが、一度、ブロックを同じ位置に挿入して
そのブロック参照から値を取ってみては如何でしょうか?
まと外れな回答だったらすいません。
Re: AutoLispで元のブロックのダイナミックブロック内のパラメータ値を取得することは可能ですか?
>GetDynamicBlockProperties
これはあくまでBlockRef(INSERT図形)用のメソッドです。
(cdadr (member '(3 . "ACAD_ENHANCEDBLOCK") (entget (vlax-vla-object->ename (vla-GetExtensionDictionary BlockRecord)))))
てな感じで、ACAD_EVALUATION_GRAPHを取得。
(mapcar 'cdr (vl-remove-if '(lambda (x) (= (car x) 360)) (entget AcadEvaluationGragh)))
で、パラメータとかアクションなどを取得。
後は(entget)で眺めてみるとパラメータ値がどこにあるかわかるはず。
その値を最初のBlockRefに反映させればいいはず。