Vla-get-iscloned

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月22日 (金) 10:50時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-iscloned ''vla-object'') ; 機能 : CopyObjects オペレーション内のソース オブジェクトがクローン化されたか...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-get-iscloned vla-object)


機能
CopyObjects オペレーション内のソース オブジェクトがクローン化されたかどうかを取得する。


引数
  • vla-object … IDPair の VLAオブジェクト


戻り値
ブール型
  • :vlax-True: ソース オブジェクトがクローン化された。
  • :vlax-False: ソース オブジェクトがクローン化されなかった。


サンプル
(vl-load-com)
(defun c:Example_IsCloned()
    ;; 円 オブジェクトを作成し、CopyObjects メソッドを使用して円のコピーを作成するサンプル。
    ;; CopyObjects 操作に使用されるソース オブジェクトに関するいくつかの情報を表示する。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; 円の定義
    (setq centerPoint (vlax-3d-point 0 0 0) 
          radius1 5
          radius1Copy 1)
    
    ;; 2つの円を追加
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq circleObj (vla-AddCircle modelSpace centerPoint radius1))
    (vla-ZoomAll acadObj)
    
    ;; オブジェクトをコピー
    ;;
    ;; CopyObjects と互換性のある形式にコピーされるオブジェクトを最初に置く
    (setq objCollection (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element objCollection 0 circleObj)
    
    ;; オブジェクトをコピーし、新しいオブジェクト (コピー) のコレクションを取得
    (setq retObjects (vla-CopyObjects doc objCollection nil 'IDPairs))
    
    ;; 新しく作成されたオブジェクトを取得し、コピーに新しいプロパティを適用
    (setq circleObjCopy (vlax-safearray-get-element (vlax-variant-value retObjects) 0))
    
    (vla-put-radius circleObjCopy radius1Copy)
        
    (vla-ZoomAll acadObj)
    (vla-Regen doc acAllViewports)
    
    ;; Display whether the first source object has a clone
    (setq IsClonedState (if (= (vla-get-IsCloned (vlax-safearray-get-element IDPairs 0)) :vlax-true) 
                           "はクローン。"
                           "はクローンでない。"))
    (setq IsPrimary (if (= (vla-get-IsPrimary (vlax-safearray-get-element IDPairs 0)) :vlax-true) 
                           "は、オブジェクトのプライマリメンバーがコピーされています。"
                           "は、オブジェクトのプライマリメンバーが所有していますがコピーされています。"))
    (setq IsXLated (if (= (vla-get-IsOwnerXlated (vlax-safearray-get-element IDPairs 0)) :vlax-true) 
                           "翻訳されてます。"
                           "翻訳されてません。"))
   
    (alert (strcat "新しい円ソースオブジェクト : " IsClonedState
                   "\n新しい円ソースオブジェクト : " IsPrimary
                   "\n新しいサークルオブジェクトのソース : " IsXLated))
)

関連事項