構文
BOOL AddSlopedWall3D(BYTE byShapeType, BYTE byCornerType, DOUBLE dBottom, DOUBLE dTop, DOUBLE dSlantDegree,
DOUBLE dThickness, DOUBLE dTopDepth, DOUBLE dMiterLimitDegree,
VARIANT& vertex, BYTE byLineStyle, BYTE byLineWidth, OLE_COLOR ocLineColor,
BYTE byHatchStyle, OLE_COLOR ocForeColor, OLE_COLOR ocBackColor, BOOL bBackTrans);
3Dシェイプ(傾斜壁)を追加します。
パラメータ
byShapeType
形状種類。以下のいずれかの値を指定できます。
- 0板状。
- 1台状。
byCornerType
入隅の面取り種類。以下のいずれかの値を指定できます。
- 0面取りなし。
- 1角面取り。
- 2丸面取り。
dBottom
下端高。
dTop
上端高。
dSlantDegree
傾斜(勾配)角度。
dThickness
「板状」を選んだときの板の厚み。
dTopDepth
上部の平坦部の奥行。
dMiterLimitDegree
「角面取り」を選択したとき、面取りを行う最大角度。
vVertex
(x, y) 頂点列。型は VT_R8 | VT_ARRAY にしてください。
byLineStyle
線種。次のいずれかの値を指定できます。
- 0実線。
- 1破線。
- 2点線。
- 3一点破線。
- 4二点破線。
- 5なし。
byLineWidth
線幅。
crLineColor
線色。
byHatchStyle
模様の種類。次のいずれかの値を指定できます。
- 0なし。
- 1塗りつぶし。
- 2水平ハッチ。
- 3垂直ハッチ。
- 4右下がりハッチ。
- 5右上がりハッチ。
- 6水平と垂直の格子ハッチ。
- 7斜め格子ハッチ。
- 8ドット1。
- 9ドット2。
- 10ドット3。
- 11ウェーブ1。
- 12ウェーブ2。
- 13ウェーブ3。
- 14斜線1。
- 15斜線2。
- 16破線1。
- 17破線2。
- 18板目。
- 19グラデーション横1。
- 20グラデーション横2。
- 21グラデーション縦1。
- 22グラデーション縦2。
- 23グラデーション右上。
- 24グラデーション左上。
- 25グラデーション中心。
- 26グラデーション右上。
- 27グラデーション右下。
- 30半透明。
- 40水平ハッチ。2の水平ハッチより目が細かい。
- 41垂直ハッチ。3の垂直ハッチより目が細かい。
- 42水平と垂直の格子ハッチ。6のハッチより目が細かい。
crForeColor
前景色。
crBackColor
背景色。
bBackTrans
背景を透明にするかどうか。0で不透明、1で透明。
戻り値
3Dシェイプ(傾斜壁)を追加できた場合 0 以外を返します。できなかった場合は 0 を返します。
使用例
// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
// 多角形を追加
SAFEARRAYBOUND bound[1];
bound[0].cElements = 8;
bound[0].lLbound = 0;
SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound);
double * pVar;
SafeArrayAccessData(pArray, (void**)&pVar);
double dVertex[8] = {0.0, 0.0, 10000.0, 1000.0, 20000.0, -1000.0, 30000.0, 0.0};
for(int i=0; i < 8; ++i){
pVar[i] = dVertex[i];
}
VARIANT v;
v.vt = VT_R8 | VT_ARRAY;
v.parray = pArray;
OLE_COLOR ocLineColor = (OLE_COLOR)RGB(0,0,0);
OLE_COLOR ocForeColor = (OLE_COLOR)RGB(0,255,0);
OLE_COLOR ocBackColor = (OLE_COLOR)RGB(0,0,255);
BOOL bBackTrans = FALSE;
long lRet = m_MadoriDoc->AddSlopedWall3D(0, 0, 0.0, 3000.0, 75.0, 100.0, 1000.0, 45.0, v, 0, 0, ocLineColor, 0, ocForeColor, ocBackColor, bBackTrans);
SafeArrayUnaccessData(pArray);
if(!lRet){
// エラー
return;
}
// JavaScript sample
function rgb(r, g, b){
var col = r + (g << 8) + (b << 16);
return col;
}
var doc = new CMadoriDoc();
var v = [0.0, 0.0, 10000.0, 1000.0, 20000.0, -1000.0, 30000.0, 0.0];
var ocLineColor = rgb(0,0,0);
var ocForeColor = rgb(0,255,0);
var ocBackColor = rgb(0,0,255);
var bBackTrans = false;
var result = doc.AddSlopedWall3D(0, 0, 0.0, 3000.0, 75.0, 100.0, 1000.0, 45.0, v, 0, 0, ocLineColor, 0, ocForeColor, ocBackColor, bBackTrans);
alert(result);