「Vla-block」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-block ''vla-object'' ''PrefixName'') ; 機能 : SortentsTable オブジェクトのブロックを返す。 ; 引数 :* vla-object …...」) |
細編集の要約なし |
||
| 1行目: | 1行目: | ||
{{AutoLISP}} | {{AutoLISP}} | ||
; 構文 | ; 構文 | ||
: (vla-block ''vla-object | : (vla-block ''vla-object'' ) | ||
2015年10月23日 (金) 11:06時点における最新版
- 構文
- (vla-block vla-object )
- 機能
- SortentsTable オブジェクトのブロックを返す。
- 引数
-
- vla-object … SortentsTable の VLA オブジェクト
- 戻り値
- Block のVLAオブジェクト。
- サンプル
(vl-load-com)
(defun c:Example_SortentsTable()
;; SortentsTable オブジェクトを作成して表示順を変更するサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
(setq modelSpace (vla-get-ModelSpace doc))
;; 線の太さを有効にして、Trueカラーの図形生成
(vla-put-LineWeightDisplay (vla-get-Preferences doc) :vlax-true)
(setq MyColorObjOne (vlax-create-object "AutoCAD.AcCmColor.20"))
(vla-SetRGB MyColorObjOne 80 100 244)
;; ポリラインを作成
(setq points (vlax-make-safearray vlax-vbDouble '(0 . 8)))
(vlax-safearray-fill points '(4 4 0
3 5 0
6 20 0
)
)
(setq plineObj (vla-AddPolyline modelSpace points))
(vla-put-Lineweight plineObj acLnWt211)
(vla-SetRGB MyColorObjOne 90 110 150)
(vla-put-TrueColor plineObj MyColorObjOne)
;; 線を作成
(setq startPoint (vlax-3d-point 5 13 0)
endPoint (vlax-3d-point 5 27 0))
(setq lineObj (vla-AddLine modelSpace startPoint endPoint))
(vla-put-Lineweight lineObj acLnWt211)
(vla-SetRGB MyColorObjOne 50 80 230)
(vla-put-TrueColor lineObj MyColorObjOne)
;; 円を作成
(setq centerPoint (vlax-3d-point 10 15 0)
radius 5)
(setq circleObj (vla-AddCircle modelSpace centerPoint radius))
(vla-put-Lineweight circleObj acLnWt211)
(vla-SetRGB MyColorObjOne 60 200 220)
(vla-put-TrueColor circleObj MyColorObjOne)
(vla-ZoomAll acadObj)
(vla-Update acadObj)
;; 拡張ディクショナリを取得し、必要な場合は、SortentsTable オブジェクトを追加
(setq eDictionary (vla-GetExtensionDictionary modelSpace))
;; 例外のスローから GetObject 呼び出しの失敗を防ぐ
(setq sentityObj (vl-catch-all-apply 'vla-GetObject (list eDictionary "ACAD_SORTENTS")))
(if (= (type sentityObj)'VL-CATCH-ALL-APPLY-ERROR)
;; SortentsTable オブジェクトが無かったら追加
(setq sentityObj (vla-AddObject eDictionary "ACAD_SORTENTS" "AcDbSortentsTable"))
)
;; ダンプしたければ、コメントを外して実行
; (vlax-dump-object (vla-block sentityObj))
(setq ObjIds (vlax-make-safearray vlax-vbLong '(0 . 2)))
(vlax-safearray-put-element ObjIds 0 (vla-get-ObjectID plineObj))
(vlax-safearray-put-element ObjIds 1 (vla-get-ObjectID lineObj))
(vlax-safearray-put-element ObjIds 2 (vla-get-ObjectID circleObj))
(setq varObject circleObj)
(setq arr (vlax-make-safearray vlax-vbObject '(0 . 0)))
(vlax-safearray-put-element arr 0 varObject)
;; 円図形を最背面に移動
(vla-MoveToBottom sentityObj arr)
(vla-Update acadObj)
(vlax-release-object MyColorObjOne)
)
関連事項