• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

既存のブロックに属性を追加

  • Thread starter Thread starter 77marco77
  • Start date Start date

77marco77

Guest
お問い合わせ
このコードを見つけました。
HTML:
(defun c:add$ ( / ss i blk blks def attobj))
(と)
(setq ss (ssget '(0 . "insert")))))))))
(setq i (sslength ss)))))
(間 (> i 0)
(setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))))))))))))))))))
(例えば(vl-position blk blks))) (setq blks (cons blk blks))))))
)
)
(ビーチブランク)
(setq def (vla-item) (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))) 空白)))
(setq attobj) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq attobj (setq attobj)) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq (setq attobj))
(vla-addattribute def)
8月8日
acattributemodeロックポジション
「エントリー番号」
(vlax-3d-point 72 84)
"price\u+0020" は、
「100」
)
)
(vlax-put attobj 'alignment acalignmentmiddle) ;;; 4
(コマンド "_.attsync" "_n" 空白)
)
(プライアンス)
)
(vl-load-com) (プロキシ)
誰: 何をすべきか、つまり、タグの価格で属性を追加し、項目メッセージ#とコンテンツ100を1つ以上選択されたブロックに入力します。 属性は、半分の中央正当でブロック(そして多くの場合、単に設計上)のインサートの点でインサートされます。

理解したいもの(変更できるもの)は:
  1. 正当化: 中央、左半分、右半分の中央に書き込む場所を知りたい
  2. 位置: (0.0) は、たとえば (0,-10) 設計ユニットに属性を追加したいブロックのインサートポイントであると言う
皆様のお越しをお待ちしております。
 
(vlax-3d-point 72 84)
属性が配置されるブロックのインサートポイントに相対的に座標を設定します。
74 で 84 を編集し、10 を y で取得します。
 
回答のおかげで、私は試したが、それは動作しません、属性はブロックのベースポイントに常に配置されます...
 
(vlax-put Actbj 'alignment のアライメントアライメントミドル); 4

行を削除すると、属性は整列に配置されますが、アライメントポイントは変更されません。
_battman はどんな場合でも解決します。
 
なので、その間にアライメントを取得するには、vla-moveを追加する必要があります。
Code:
(defun c:add$ ( / ss i blk blks def attobj))
(と)
(setq ss (ssget '(0 . "insert")))))))))
(setq i (sslength ss)))))
(間 (> i 0)
(setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))))))))))))))))))
(例えば(vl-position blk blks))) (setq blks (cons blk blks))))))
)
)
(ビーチブランク)
(setq def (vla-item) (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))) 空白)))
(setq attobj) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq attobj (setq attobj)) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq (setq attobj))
(vla-addattribute def)
8月8日
acattributemodeロックポジション
「エントリー番号」
(vlax-3d-point 72 84)
"price\u+0020" は、
「ピッポ」
)
)
(vlax-put attobj 'alignment acalignmentmiddle) ;;; 4
(vla-move attobj (vlax-3d-point 0 0 0) (vlax-3d-point 0 -10)))
(コマンド "_.attsync" "_n" 空白)
)

(プライアンス)
)
(vl-load-com) (プロキシ)
 
Last edited:
なので、その間にアライメントを取得するには、vla-moveを追加する必要があります。
Code:
(defun c:add$ ( / ss i blk blks def attobj))
(と)
(setq ss (ssget '(0 . "insert")))))))))
(setq i (sslength ss)))))
(間 (> i 0)
(setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))))))))))))))))))
(例えば(vl-position blk blks))) (setq blks (cons blk blks))))))
)
)
(ビーチブランク)
(setq def (vla-item) (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))) 空白)))
(setq attobj) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq attobj (setq attobj)) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq (setq attobj))
(vla-addattribute def)
8月8日
acattributemodeロックポジション
「エントリー番号」
(vlax-3d-point 72 84)
"price\u+0020" は、
「ピッポ」
)
)
(vlax-put attobj 'alignment acalignmentmiddle) ;;; 4
(vla-move attobj (vlax-3d-point 0 0 0) (vlax-3d-point 0 -10)))
(コマンド "_.attsync" "_n" 空白)
)

(プライアンス)
)
(vl-load-com) (プロキシ)
お問い合わせ
デビッド銅フィールドによる自由の像の消失を目撃している子供のような感じを認めなければならない::giggle:.
 
(vlax-put Actbj 'alignment のアライメントアライメントミドル); 4

行を削除すると、属性は整列に配置されますが、アライメントポイントは変更されません。
_battman はどんな場合でも解決します。
私は試してみて、それがうまくいくでしょう、しかし、それが6358ブロックのためにそれを行う必要があることは、少し長くなります、おかげでしかし、アイデアと助けのために!
 
なので、その間にアライメントを取得するには、vla-moveを追加する必要があります。
Code:
(defun c:add$ ( / ss i blk blks def attobj))
(と)
(setq ss (ssget '(0 . "insert")))))))))
(setq i (sslength ss)))))
(間 (> i 0)
(setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))))))))))))))))))
(例えば(vl-position blk blks))) (setq blks (cons blk blks))))))
)
)
(ビーチブランク)
(setq def (vla-item) (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))) 空白)))
(setq attobj) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq attobj (setq attobj)) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq (setq attobj))
(vla-addattribute def)
8月8日
acattributemodeロックポジション
「エントリー番号」
(vlax-3d-point 72 84)
"price\u+0020" は、
「ピッポ」
)
)
(vlax-put attobj 'alignment acalignmentmiddle) ;;; 4
(vla-move attobj (vlax-3d-point 0 0 0) (vlax-3d-point 0 -10)))
(コマンド "_.attsync" "_n" 空白)
)

(プライアンス)
)
(vl-load-com) (プロキシ)
それでも少しソーダ(多分... )
テキストの高さは2(8の代わりに)、幅の係数を0.9に入力するか、別のリスペスで後でそれをすることができますか? (既に持っていると思います)
 
Code:
(defun c:add$ ( / ss i blk blks def attobj))
(と)
(setq ss (ssget '(0 . "insert")))))))))
(setq i (sslength ss)))))
(間 (> i 0)
(setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))))))))))))))))))
(例えば(vl-position blk blks))) (setq blks (cons blk blks))))))
)
)
(ビーチブランク)
(setq def (vla-item) (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))) 空白)))
(setq attobj) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq attobj (setq attobj)) (setq attobj (setq attobj) (setq attobj) (setq attobj (setq attobj) (setq (setq attobj))
(vla-addattribute def)
8月8日
acattributemodeロックポジション
「エントリー番号」
(vlax-3d-point 72 84)
"price\u+0020" は、
「ピッポ」
)
)
(vlax-put attobj 'alignment acalignmentmiddle) ;;; 4
(vla-move attobj (vlax-3d-point 0 0 0) (vlax-3d-point 0 -10)))
(vla-put-scalefactor attobj 0.9) の仕様
(コマンド "_.attsync" "_n" 空白)
)
(プライアンス)
)
(vl-load-com) (プロキシ)
 
これは新しい何かを学ぶための良い機会だった, 私はconfutatisで話します.
2つの方法でテキストアライメントポイントプロパティを変更できる属性を移動するのではなく、見てきました。
(vlax-put-property Actbj 'textalignmentpoint (vlax-3d-point 0 -10 0)))))
(vla-put-textalignmentpoint Actbj (vlax-3d-point 0 -10 0)))

スケールファクターの同じスピーチ
(vlax-put-property Actbj の 'scalefactor 0.9)
(vla-put-scalefactor Actbj 0.9) の仕様

属性の定義フェーズでは、単に座標 0.0.0 を示す
その後、テキストアライメントポイントを変更します

ご挨拶
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top