SDK(Software Developer's Kit)情報 [注意点-003]
線種設定方法の変更
Vectorworks2013から線種の設定方法がかわりました。
以前、線に線種を割り当てる場合に、
WorldPt startPt, endPt; startPt.Set( 0.0, 0.0 ); endPt.Set( 50.0, 50.0 ); Handle objH = GS_CreateLine( gCBP, startPt, endPt ); GS_SetPenPat( gCBP, objH, -1 );
とすることで線種を割り当てることができましたが、Vectorworks2013からはリソースパレットに登録されている線種を割り当てることになります。
以下のようなプログラムでVectorworksのデフォルト線種をライブラリから参照(コピー)することができます。
long numLineTypes = 0; TXString emptyStr; long listID = gSDK->BuildResourceList( kLineTypeDefNode, kDefaultLineTypesFolder, emptyStr, numLineTypes ); if( listID ) { for( long ii = 0; ii < numLineTypes; ii++ ) { MCObjectHandle resource = gSDK->ImportResourceToCurrentFile( listID, ii + 1 ); } }
これはLibraries\Defaults\Attributes - Line Typesの中にあるLineTypes_Defaults.vwx書類から、ラインタイプのデータを開いている書類にインポートしてくる方法です。以下のように予めラインタイプを読み込んでおくことで線種の割り当てが可能になります。
long numLineTypes = 0; TXString emptyStr; long listID = gSDK->BuildResourceList( kLineTypeDefNode, kDefaultLineTypesFolder, emptyStr, numLineTypes ); if( listID ) { for( long ii = 0; ii < numLineTypes; ii++ ) { MCObjectHandle resource = gSDK->ImportResourceToCurrentFile( listID, ii + 1 ); } } WorldPt startPt, endPt; startPt.Set( 0.0, 0.0 ); endPt.Set( 50.0, 50.0 ); Handle objH = GS_CreateLine( gCBP, startPt, endPt ); GS_SetPenPat( gCBP, objH, -1 );
なお、現バージョンでは特殊なラインタイプ(例:ジグザグ等)はスクリプトでは設定することができません。