PROCEDURE Get3D_Size_All; LABEL 999; CONST vLayerType=154; {レイヤの種類} ltDesign=1; ltSheet=2; pPrimShowUnitMark=163; {単位記号の表示(主単位)} SV_Chunk=2; {メニュー 上} s3DSelect=-349; {ツール 3Dセレクションポインタ} WS_name='3D_Size_List'; L_title='Layer'; C_title='Class'; N_title='Name'; W_title='Width'; H_title='Height'; D_title='Depth'; S_title='Number'; VAR Show_UM :BOOLEAN; WS_hd,L_hd :HANDLE; {L_hd:Get3D_Object内ではキープされない} i :INTEGER; PROCEDURE Get3D_Object(TO_hd:HANDLE); {O_hd=NILでは実行されない} CONST vObjectIs3D=650; {ステータス 3Dオブジェクト} PROCEDURE Load_3D_Size(TO_hd:HANDLE); CONST tSYMBOL=15; {シンボル} VAR name :STRING; width,height,depth :REAL; c_CR,c_CC,t_RR,l_RC,t_RS,b_RR,r_RC,b_RS :INTEGER; BEGIN i:=i+1; IF GetType(TO_hd)=tSYMBOL THEN name:=GetSymName(TO_hd) ELSE BEGIN name:=GetName(TO_hd); IF ( name='' ) | ( name='none' ) THEN name:=Concat('Type=',GetType(TO_hd)); END; Get3DInfo(TO_hd,height,width,depth); Message(Concat(i,' 名前=',name,' 幅=',width,',高さ=',height,',奥行き=',depth)); InsertWSRows(WS_hd,1+i,1); { LoadCell(1+i,1,GetLName(GetLayer(TO_hd))); LoadCell(1+i,2,GetClass(TO_hd)); LoadCell(1+i,3,name); LoadCell(1+i,4,Num2StrF(width)); LoadCell(1+i,5,Num2StrF(height)); LoadCell(1+i,6,Num2StrF(depth)); } SetWSCellFormula(WS_hd,1+i,1,1+i,1,GetLName(GetLayer(TO_hd))); SetWSCellFormula(WS_hd,1+i,2,1+i,2,GetClass(TO_hd)); SetWSCellFormula(WS_hd,1+i,3,1+i,3,name); SetWSCellFormula(WS_hd,1+i,4,1+i,5,Num2StrF(width)); SetWSCellFormula(WS_hd,1+i,5,1+i,5,Num2StrF(height)); SetWSCellFormula(WS_hd,1+i,6,1+i,6,Num2StrF(depth)); END; BEGIN IF GetLayer(TO_hd)<>L_hd THEN BEGIN ReDrawAll; L_hd:=GetLayer(TO_hd); { AlrtDialog(GetLName(L_hd));} END; IF GetObjectVariableBoolean(TO_hd,vObjectIs3D) THEN Load_3D_Size(TO_hd); END; BEGIN IF GetObjectVariableInt(ActLayer,vLayerType)=ltSheet THEN BEGIN AlrtDialog('このツールはシートレイヤでは使用できません'); GOTO 999; END; WS_hd:=CreateWS(WS_name,1,6); { TargetSprdSheet(WS_hd); SelectSS(WS_hd); LoadCell(1,1,L_title); LoadCell(1,2,C_title); LoadCell(1,3,N_title); LoadCell(1,4,W_title); LoadCell(1,5,H_title); LoadCell(1,6,D_title); } SetWSCellFormula(WS_hd,1,1,1,1,L_title); SetWSCellFormula(WS_hd,1,2,1,2,C_title); SetWSCellFormula(WS_hd,1,3,1,3,N_title); SetWSCellFormula(WS_hd,1,4,1,5,W_title); SetWSCellFormula(WS_hd,1,5,1,5,H_title); SetWSCellFormula(WS_hd,1,6,1,6,D_title); Show_UM:=GetPref(pPrimShowUnitMark); IF Show_UM THEN SetPref(pPrimShowUnitMark,FALSE); DoMenuTextByName('Standard Views',SV_Chunk); { SetTool(s3DSelect);} i:=0; ForEachObject(Get3D_Object,( (T<>GROUP) & (T<>LAYERLINK) {& (T<>SYMBOL)} )); DoMenuTextByName('Previous View',0); SetPref(pPrimShowUnitMark,Show_UM); AlrtDialog(Concat(i,'のオブジェクトのサイズを取得しました')); { SetWSSelection(WS_hd,1,1,1,1,0,1,1,0);} ShowWS(WS_hd,TRUE); 999:END; Run(Get3D_Size_All);