Block + inserts
Define a block from entities, then place single and rectangular-array references (CadAddInsBlock / CadAddInsBlockM).
// 6 — Create Block + inserts (CreBlock.htm) static void samp_creblock() { samp_clear(); int e[3]; e[0] = CadAddLine(g_hDwg, 0,0,0, 0,1,0); CadEntityPutColor(e[0], CAD_COLOR_RED); e[1] = CadAddLine(g_hDwg, -0.866,-0.5,0, 0,0,0); CadEntityPutColor(e[1], CAD_COLOR_GREEN); e[2] = CadAddLine(g_hDwg, 0.866,-0.5,0, 0,0,0); CadEntityPutColor(e[2], CAD_COLOR_BLUE); int hBlock = CadAddBlock(g_hDwg, "3line", 0,0,0); if (hBlock) { CadBlockAddEntity(hBlock, e[0]); CadBlockAddEntity(hBlock, e[1]); CadBlockAddEntity(hBlock, e[2]); int id = CadBlockGetID(hBlock); CadAddInsBlock(g_hDwg, id, 0,0,0, 1.0, 0); CadAddInsBlockM(g_hDwg, id, 3,0,0, 1.0, 0, 8,3, 1.732, 3.0); CadAddInsBlockM(g_hDwg, id, 3.866,1.5,0, 1.0, 0, 8,3, 1.732, 3.0); CadUpdate(g_hDwg); } samp_zoom_ext(); set_status(L"Sample 6: Block + inserts — compare to creblock.gif"); }
6: begin CadPurge(FhDwg, CAD_CLEAR_ENTITIES); ee[0] := CadAddLine(FhDwg, 0,0,0, 0,1,0); CadEntityPutColor(ee[0], CAD_COLOR_RED); ee[1] := CadAddLine(FhDwg, -0.866,-0.5,0, 0,0,0); CadEntityPutColor(ee[1], CAD_COLOR_GREEN); ee[2] := CadAddLine(FhDwg, 0.866,-0.5,0, 0,0,0); CadEntityPutColor(ee[2], CAD_COLOR_BLUE); hBlock := CadAddBlock(FhDwg, PAnsiChar(AnsiString('3line')), 0,0,0); if hBlock <> 0 then begin CadBlockAddEntity(hBlock, ee[0]); CadBlockAddEntity(hBlock, ee[1]); CadBlockAddEntity(hBlock, ee[2]); id := CadBlockGetID(hBlock); CadAddInsBlock(FhDwg, id, 0,0,0, 1.0, 0); CadAddInsBlockM(FhDwg, id, 3,0,0, 1.0, 0, 8,3, 1.732, 3.0); CadAddInsBlockM(FhDwg, id, 3.866,1.5,0, 1.0, 0, 8,3, 1.732, 3.0); CadUpdate(FhDwg); end;
private void SampleCreBlock() { SampleClear(); int[] e = new int[3]; e[0] = YuCadApi.CadAddLine(_hDwg, 0,0,0, 0,1,0); YuCadApi.CadEntityPutColor(e[0], YuCadApi.CAD_COLOR_RED); e[1] = YuCadApi.CadAddLine(_hDwg, -0.866,-0.5,0, 0,0,0); YuCadApi.CadEntityPutColor(e[1], YuCadApi.CAD_COLOR_GREEN); e[2] = YuCadApi.CadAddLine(_hDwg, 0.866,-0.5,0, 0,0,0); YuCadApi.CadEntityPutColor(e[2], YuCadApi.CAD_COLOR_BLUE); int hBlock = YuCadApi.CadAddBlock(_hDwg, "3line", 0,0,0); if (hBlock != 0) { YuCadApi.CadBlockAddEntity(hBlock, e[0]); YuCadApi.CadBlockAddEntity(hBlock, e[1]); YuCadApi.CadBlockAddEntity(hBlock, e[2]); int id = YuCadApi.CadBlockGetID(hBlock); YuCadApi.CadAddInsBlock(_hDwg, id, 0,0,0, 1.0, 0); YuCadApi.CadAddInsBlockM(_hDwg, id, 3,0,0, 1.0, 0, 8,3, 1.732, 3.0); YuCadApi.CadAddInsBlockM(_hDwg, id, 3.866,1.5,0, 1.0, 0, 8,3, 1.732, 3.0); YuCadApi.CadUpdate(_hDwg); } SampleZoomExt(); SetStatus("Sample 6: Block + inserts — compare to creblock.gif"); }
This code is extracted verbatim from the shipped demo hosts (
examples/cpp, examples/delphi, examples/csharp) — run the matching menu item there to see it live.