www.mxdraw.com
|
插入块引用
[helpstring("method InsertBlock")] HRESULT InsertBlock([in] DOUBLE dInsertPointX, [in] DOUBLE dInsertPointY, [in] BSTR psxBlkName, [in, defaultvalue(1.0)] DOUBLE dScale, [in, defaultvalue(0.0)] DOUBLE dAng, [out,retval] IMxDrawBlockReference** ppNewObj);
参数 |
说明 |
[in] BSTR psxBlkName |
图块名 |
[in, defaultvalue(1.0)] DOUBLE dScale |
图块的缩放比例 |
[in, defaultvalue(0.0)] DOUBLE dAng |
图块的旋转角度 |
insertPoint |
图块的插入点 |
返回新增加的对象
例如: C#代码。
private void button1_Click(object sender, EventArgs e) { MxDrawDatabase blkDatabase = new MxDrawDatabase(); if(!blkDatabase.ReadDwgFile("G:\d.dwg","") ) return; MxDrawService ser = new MxDrawService(); if (!ser.Open("G:\a.dwg")) return; MxDrawDatabase dataBase = ser.GetDatabase(); Int64 lId = dataBase.Insert(blkDatabase,"mysign"); if (lId == 0) { ser.Close(); return; } MxDrawBlockTableRecord blkRec = dataBase.CurrentSpace(); // 得到a.dwg所有图块位置。 MxDrawSelectionSet ss = new MxDrawSelectionSet(); MxDrawResbuf filter = new MxDrawResbuf(); // 过滤图块 filter.AddStringEx("INSERT",5020); // 过滤块名 filter.AddStringEx("图框块",2); ss.AllSelect(filter); for(Int32 i = 0; i < ss.Count;i++) { MxDrawEntity ent = ss.Item(i); if (ent is MxDrawBlockReference) { MxDrawBlockReference blkRef = (MxDrawBlockReference)ent; // 得到图块位置。 MxDrawPoint pos = blkRef.Position; pos.x -= 295; // 插入b文件。 blkRec.InsertBlock(pos.x,pos.y,"mysign"); } } // 另一个新文件。 ser.SaveDwgFile("G:\a1.dwg"); ser.Close(); }