「Vla-removeitems」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-removeitems ''vla-object'' ''Objects'') ; 機能 : 指定されたグループに 1 つ以上の図形を追加する。 ; 引数 :* vl...」) |
編集の要約なし |
||
(同じ利用者による、間の1版が非表示) | |||
5行目: | 5行目: | ||
; 機能 | ; 機能 | ||
: | : グループまたは選択セットから、指定された項目を除去する。 | ||
18行目: | 18行目: | ||
:MEMO | :MEMO | ||
:* グループや選択セットから除去された項目は図面内に残るが、グループや選択セットとの関連はなくなる。これは Clear | :* グループや選択セットから除去された項目は図面内に残るが、グループや選択セットとの関連はなくなる。これは Clear メソッドによく似ているが、RemoveItems メソッドでは選択セットのオブジェクトすべてを除去するのではなく、除去する項目をユーザが指定することができる。 | ||
:* このメソッドは、Delete メソッドや Erase メソッドとは異なり、図面からオブジェクトを除去しない。 | :* このメソッドは、Delete メソッドや Erase メソッドとは異なり、図面からオブジェクトを除去しない。 | ||
87行目: | 87行目: | ||
(alert "The selection set is empty") | (alert "The selection set is empty") | ||
(while (>= (1- (vla-get-Count ssetObj)) I) | (while (>= (1- (vla-get-Count ssetObj)) I) | ||
(alert (strcat " | (alert (strcat "選択セットに含まれる図形 : " (vla-get-ObjectName (vla-Item ssetObj I)))) | ||
(setq I (1+ I)) | (setq I (1+ I)) | ||
99行目: | 99行目: | ||
(vla-RemoveItems ssetObj removeObjects) | (vla-RemoveItems ssetObj removeObjects) | ||
(alert " | (alert "楕円と円を選択セットから除外") | ||
;; 選択セットの図形を一覧表示 | ;; 選択セットの図形を一覧表示 | ||
106行目: | 106行目: | ||
(alert "The selection set is empty") | (alert "The selection set is empty") | ||
(while (>= (1- (vla-get-Count ssetObj)) I) | (while (>= (1- (vla-get-Count ssetObj)) I) | ||
(alert (strcat " | (alert (strcat "選択セットに含まれる図形 : " (vla-get-ObjectName (vla-Item ssetObj I)))) | ||
(setq I (1+ I)) | (setq I (1+ I)) | ||
119行目: | 119行目: | ||
関連事項 | 関連事項 | ||
* [[vlax-get-acad-object]] | * [[vlax-get-acad-object]] | ||
* [[vla-erase]] | |||
* [[vla-get-activedocument]] | * [[vla-get-activedocument]] | ||
* [[vla-removeitems]] | * [[vla-removeitems]] |
2024年5月3日 (金) 15:50時点における最新版
- 構文
- (vla-removeitems vla-object Objects)
- 機能
- グループまたは選択セットから、指定された項目を除去する。
- 引数
-
- vla-object … Group、SelectionSet の VLAオブジェクト
- Objects … 除去されるオブジェクトの配列。
- 戻り値
- nil
- MEMO
- グループや選択セットから除去された項目は図面内に残るが、グループや選択セットとの関連はなくなる。これは Clear メソッドによく似ているが、RemoveItems メソッドでは選択セットのオブジェクトすべてを除去するのではなく、除去する項目をユーザが指定することができる。
- このメソッドは、Delete メソッドや Erase メソッドとは異なり、図面からオブジェクトを除去しない。
- サンプル
(vl-load-com) (defun c:Example_RemoveItems() ;; いくつかのオブジェクトを作成して、選択セットにオブジェクトを追加してから ;; 2 つのオブジェクトの選択セットから除外するサンプル。 (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq modelSpace (vla-get-ModelSpace doc)) ;; 新しい選択セットを作成 (setq ssetObj (vla-Add (vla-get-SelectionSets doc) "TEST_SELECTIONSET")) ;; 放射線を作成 (setq basePoint (vlax-3d-point 3 3 0) secondPoint (vlax-3d-point 1 3 0)) (setq rayObj (vla-AddRay modelSpace basePoint SecondPoint)) ;; ポリラインを作成 (setq points (vlax-make-safearray vlax-vbDouble '(0 . 5))) (vlax-safearray-fill points '(3 7 9 2 3 5 ) ) (setq plineObj (vla-AddLightWeightPolyline modelSpace points)) (vla-put-Closed plineObj :vlax-true) ;; 線分を作成 (setq startPoint (vlax-3d-point 0 0 0) endPoint (vlax-3d-point 2 2 0)) (setq lineObj (vla-AddLine modelSpace startPoint endPoint)) ;; 円を作成 (setq centerPt (vlax-3d-point 20 30 0) radius 3) (setq circObj (vla-AddCircle modelSpace centerPt radius)) ;; 楕円を作成 (setq center (vlax-3d-point 5 5 0) majAxis (vlax-3d-point 10 20 0) radRatio 0.3) (setq ellObj (vla-AddEllipse modelSpace center majAxis radRatio)) (vla-ZoomAll acadObj) ;; モデル領域のコレクションを反復処理。 ;; 選択セットに追加するオブジェクトの配列に見つかったオブジェクトを収集する。 (setq ssobjs (vlax-make-safearray vlax-vbObject (cons 0 (- (vla-get-Count modelSpace) 1)))) (setq cnt 0) (vlax-for each-item modelSpace (vlax-safearray-put-element ssobjs cnt each-item) (setq cnt (1+ cnt)) ) ;; 選択セットに追加 (vla-AddItems ssetObj ssobjs) ;; 選択セットのオブジェクトを一覧表示 (setq I 0) (if (= (vla-get-Count ssetObj) 0) (alert "The selection set is empty") (while (>= (1- (vla-get-Count ssetObj)) I) (alert (strcat "選択セットに含まれる図形 : " (vla-get-ObjectName (vla-Item ssetObj I)))) (setq I (1+ I)) ) ) ;; 2 つのオブジェクトの選択セットから削除。 (setq removeObjects (vlax-make-safearray vlax-vbObject '(0 . 1))) (vlax-safearray-put-element removeObjects 0 ellObj) (vlax-safearray-put-element removeObjects 1 circObj) (vla-RemoveItems ssetObj removeObjects) (alert "楕円と円を選択セットから除外") ;; 選択セットの図形を一覧表示 (setq I 0) (if (= (vla-get-Count ssetObj) 0) (alert "The selection set is empty") (while (>= (1- (vla-get-Count ssetObj)) I) (alert (strcat "選択セットに含まれる図形 : " (vla-get-ObjectName (vla-Item ssetObj I)))) (setq I (1+ I)) ) ) (vla-Delete ssetObj) )
関連事項