IAcSmDatabase

提供:GizmoLabs - だいたい CAD LISP なサイト
2022年7月24日 (日) 23:17時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{BCAD_LISP}} SheetSet Database のメインインターフェイス。 使用可能なメソッド (setq cad (vlax-get-acad-object)) (setq ssmgr (vla-GetInterfaceObj…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

SheetSet Database のメインインターフェイス。

使用可能なメソッド

(setq cad (vlax-get-acad-object))
(setq ssmgr (vla-GetInterfaceObject cad "BricscadSm.AcSmSheetSetMgr"))
(setq smdb (vlax-invoke-method ssmgr 'OpenDatabase dstfile))


項目 内容
LoadFromFile 指定されたDSTテンプレート・データベースから(再)ロードするか、テンプレートが指定されていない場合("0 "として)割り当てられたDSTデータベース・ファイルから再初期化する。
(setq smdb (vlax-invoke-method ssmgr 'CreateDatabase ""))
(setq res (vlax-invoke-method smdb 'LoadFromFile dstfile))

HRESULT LoadFromFile ([in, optional, defaultvalue("0")] BSTR templateDstFile)
GetFileName このデータベースが関連付けられている DST ファイルを返す。
(setq name (vlax-invoke-method smdb 'GetFileName))

HRESULT GetFileName ([out, retval] BSTR* pFilename)
SetFileName このデータベースが関連する DST ファイルを指定する (一度だけ。新しい IAcSmDatabase が構築された後)。
(setq smdb (vlax-invoke-method ssmgr 'CreateDatabase ""))
(vlax-invoke-method smdb 'SetFileName dstFile)

HRESULT SetFileName ([in] BSTR filename)
GetTemplateDstFileName LoadFromFile で使用したテンプレート DST ファイルを返す。
(setq name (vlax-invoke-method smdb 'GetTemplateDstFileName))

HRESULT GetTemplateDstFileName ([out, retval] BSTR* pFilename)
GetSheetSet この IAcSmDatabase が管理する IAcSmSheetSet コンポーネントを返す。
(setq sheetset (vlax-invoke-method smdb 'GetSheetSet))

HRESULT GetSheetSet ([out, retval] IAcSmSheetSet** pSheetSet)
LockDb 指定されたオブジェクトの変更を許可するために、この IAcSmDatabase をロックする。
(setq res (vlax-invoke-method smdb 'LockDb smdb))  ;; locks the entire database

HRESULT LockDb ([in] IUnknown* pObject)
UnlockDb この IAcSmDatabase のロックを解除し (すべての変更が完了した後)、オプション (デフォルト) でディスクファイルにコミットする。
(setq res (vlax-invoke-method smdb 'UnlockDb smdb :vlax-false))  ;; unlocks the entire database, not committed to disk
(setq res (vlax-invoke-method smdb 'UnlockDb smdb :vlax-false))  ;; unlocks the entire database, committed to disk

HRESULT UnlockDb ([in] IUnknown* pObject, [in, optional, defaultvalue(-1)] VARIANT_BOOL bCommit)
GetLockStatus この IAcSmDatabase のロック状態を返す。
(setq res (vlax-invoke-method smdb 'GetLockStatus))

HRESULT GetLockStatus ([out, retval] AcSmLockStatus* pStatus)
GetLockOwnerInfo 現在のロックの所有者に関する情報を返す。
(setq res (vlax-invoke-method smdb 'GetLockOwnerInfo 'lockUser 'lockMachine))

HRESULT GetLockOwnerInfo ([out] BSTR* pUserName, [out] BSTR* pMachineName)
GetNewObjectId 指定されたオブジェクトハンドルの IAcSmObjectId を返す (必要であれば、それを作成する)。
(setq id (vlax-invoke-method smdb GetNewObjectId handle 'cookie))

HRESULT GetNewObjectId ([in] BSTR hand, [out] long* pCookie, [out, retval] IAcSmObjectId** ppObjectId
RegisterOwner オブジェクト階層を作成するために、提供された IAcSmPersist オブジェクトの所有者を定義する。
(vlax-invoke-method smdb RegisterOwner cookie object ownerObject)

HRESULT RegisterOwner ([in] long cookie, [in] IAcSmPersist* pObject, [in] IAcSmPersist* pOwner)
GetEnumerator この IAcSmDatabase の列挙子 (イテレータ) オブジェクトを返す (含まれる全てのオブジェクトをイテレートする)
(setq iter (vlax-invoke-method smdb 'GetEnumerator))

HRESULT GetEnumerator ([out, retval] IAcSmEnumPersist** ppEnumerator)
FindObject 指定された永続オブジェクトハンドルの IAcSmPersist オブジェクトを返す。
(setq handle (vlax-invoke-method sheetset 'GetObjectId))
(setq handle (vlax-invoke-method handle 'GetHandle))
(setq obj (vlax-invoke-method smdb 'FindObject handle))

HRESULT FindObject ([in] BSTR hand, [out, retval] IAcSmPersist** ppObject)
FindAcDbObjectReferences 指定された AcDbObject データベースオブジェクトを参照する IAcSmAcDbObjectReference オブジェクトの配列を返す。
(setq blocks (vla-get-Blocks (vla-get-activedocument cad)))
(setq block (vla-item blocks "test"))
(setq res (vlax-invoke-method smdb 'FindAcDbObjectReferences block))

HRESULT FindAcDbObjectReferences ([in] IAcadObject* pAcDbObject, [out, retval] SAFEARRAY(IUnknown*)* ppObjects)
UpdateInMemoryDwgHints この IAcSmDatabase が参照するすべてのオープンな図面中のヒントを更新する。
(setq res (vlax-invoke-method smdb 'UpdateInMemoryDwgHints))

HRESULT UpdateInMemoryDwgHints ()
GetIsTemporary この IAcSmDatabase が持続的であるかどうかを返す。
(setq res (vlax-invoke-method smdb 'GetIsTemporary))

HRESULT GetIsTemporary ([out, retval] VARIANT_BOOL* isTemporary)
SetIsTemporary この IAcSmDatabase が永続的でないと定義する。
(setq res (vlax-invoke-method smdb 'SetIsTemporary))

HRESULT SetIsTemporary ()
GetDbVersion IAcSmDatabase バージョンを返す。
(setq res (vlax-invoke-method smdb 'GetDbVersion))
HRESULT GetDbVersion ([out, retval] BSTR* pVersionString)