public void Create() { AcadApplication acadApp = null; AcadDocument doc = null; AcadTable myTable = null; acadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); doc = acadApp.ActiveDocument; PromptPointOptions ppOps = new PromptPointOptions("请选择表格插入位置\n"); PromptPointResult ppRes = AcadEd.GetPoint(ppOps); double[] vertices = new double[3]; vertices[0] = 0; vertices[1] = 0; vertices[2] = 0; if (ppRes.Status == PromptStatus.OK) { vertices[0] = ppRes.Value[0]; vertices[1] = ppRes.Value[1]; vertices[2] = ppRes.Value[2]; } AcRowType acRowType = new AcRowType(); /*acUnknownRow = 0, * acDataRow = 1, * acTitleRow = 2, * acHeaderRow = 4*/ myTable = doc.ActiveLayout.Block.AddTable(vertices, 4, 2, 3, 10); //设置文字高度 myTable.SetTextHeight(1, 0.5); myTable.SetTextHeight(2, 1.5); myTable.SetTextHeight(4, 1); //合并单元格 myTable.MergeCells(1, 2, 0, 0); //设置列宽 myTable.SetColumnWidth(0, 5); myTable.SetColumnWidth(1, 25); //插入数据 myTable.SetText(0, 0, "我的表格测试"); myTable.SetText(1, 0, "Data1"); myTable.SetText(1, 1, "这是一条数据"); myTable.SetText(2, 1, "这是一条测试数据"); myTable.SetText(3, 1, "左边是个块定义"); //设置文字颜色 AcadAcCmColor color = new AcadAcCmColor(); color.ColorIndex = AcColor.acYellow; myTable.SetContentColor(2, color); //设置单元格中文字颜色 AcadAcCmColor color2 = new AcadAcCmColor(); color2.ColorIndex = AcColor.acGreen; myTable.SetContentColor2(3, 1, 0, color2); //设置单元格对其方式 myTable.SetAlignment(1, AcCellAlignment.acMiddleCenter); PromptEntityOptions propEnt = new PromptEntityOptions("请选择实体\n"); PromptEntityResult propRes = AcadEd.GetEntity(propEnt); if (propRes.Status == PromptStatus.OK) { try { //错误 // myTable.SetBlockTableRecordId(3, 0, propRes.ObjectId.OldIdPtr.ToInt64(), true); ObjectId oId = propRes.ObjectId; AcadEd.WriteMessage(oId.IsValid.ToString()); BlockReference br; using (var trans = AcadDb.TransactionManager.StartTransaction()) { br = trans.GetObject(oId, OpenMode.ForRead) as BlockReference; if (br == null) { Application.ShowAlertDialog("请选择块定义"); trans.Commit(); return; } trans.Commit(); } //错误 //br = (BlockReference)oId.GetObject(OpenMode.ForRead); //设置单元格块引用 myTable.SetBlockTableRecordId(3, 0, br.BlockTableRecord.OldIdPtr.ToInt64(), true); } catch (System.Exception e) { AcadEd.WriteMessage(e.ToString()); } } }
private bool InternCheckValue(object vvarValue, AcadTable vobjAcadTable, ref double rdblObjectID, ref string nrstrErrMsg) { nrstrErrMsg = null; rdblObjectID = -1.0; bool dblnErr = default(bool); if (!InternCheckMin(RuntimeHelpers.GetObjectValue(vvarValue))) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert unterschreitet Minimalwert."; dblnErr = true; } if (!InternCheckMax(RuntimeHelpers.GetObjectValue(vvarValue))) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert übertschreitet Maximalwert."; dblnErr = true; } if (!InternCheckBit(RuntimeHelpers.GetObjectValue(vvarValue))) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert ist keine zulässiger Bitsumme."; dblnErr = true; } if (!InternCheckColor(RuntimeHelpers.GetObjectValue(vvarValue))) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert ist kein gültiger Farbwert."; dblnErr = true; } if ((mnumSymTable != hwpDxf_Enums.SYMBOL_TABLE.symNone) & (mvarLstValues != null)) { if (!InternCheckLst(RuntimeHelpers.GetObjectValue(vvarValue)) & !InternCheckSymTable(RuntimeHelpers.GetObjectValue(vvarValue), vobjAcadTable, ref rdblObjectID)) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert ist nicht Bestandteil der Werteliste oder Symboltabelle."; dblnErr = true; } } else { if (!InternCheckLst(RuntimeHelpers.GetObjectValue(vvarValue))) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert ist nicht Bestandteil der Werteliste."; dblnErr = true; } if (!InternCheckSymTable(RuntimeHelpers.GetObjectValue(vvarValue), vobjAcadTable, ref rdblObjectID)) { if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg += "\n"; } nrstrErrMsg += "Variablenwert ist nicht Bestandteil der Symboltabelle."; dblnErr = true; } } if (Operators.CompareString(nrstrErrMsg, null, TextCompare: false) != 0) { nrstrErrMsg = mstrName + "\n" + nrstrErrMsg; } return(!dblnErr); }
private bool InternCheckSymTable(object vvarValue, AcadTable vobjAcadTable, ref double rdblObjectID) { rdblObjectID = -1.0; bool dblnValid = default(bool); AcadBlocks dobjAcadBlocks2; AcadBlock dobjAcadBlock2; AcadUCSs dobjAcadUCSs2; AcadUCS dobjAcadUCS2; AcadTextStyles dobjAcadTextStyles2; AcadTextStyle dobjAcadTextStyle2; AcadLineTypes dobjAcadLineTypes2; AcadLineType dobjAcadLinetype2; AcadLayers dobjAcadLayers2; AcadLayer dobjAcadLayer2; AcadDimStyles dobjAcadDimStyles2; AcadDimStyle dobjAcadDimStyle2; AcadViewports dobjAcadViewports2; AcadViewport dobjAcadViewport2; AcadRegisteredApplications dobjAcadRegisteredApplications2; AcadRegisteredApplication dobjAcadRegisteredApplication2; AcadViews dobjAcadViews2; AcadView dobjAcadView2; if (vobjAcadTable == null) { dblnValid = true; } else { switch (SymTable) { case 0: dblnValid = true; break; case 2: dobjAcadBlocks2 = (AcadBlocks)vobjAcadTable; dobjAcadBlock2 = (AcadBlock)dobjAcadBlocks2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadBlock2 != null) { rdblObjectID = dobjAcadBlock2.ObjectID; dblnValid = true; } break; case 7: dobjAcadUCSs2 = (AcadUCSs)vobjAcadTable; dobjAcadUCS2 = (AcadUCS)dobjAcadUCSs2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadUCS2 != null) { rdblObjectID = dobjAcadUCS2.ObjectID; dblnValid = true; } break; case 6: dobjAcadTextStyles2 = (AcadTextStyles)vobjAcadTable; dobjAcadTextStyle2 = (AcadTextStyle)dobjAcadTextStyles2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadTextStyle2 != null) { rdblObjectID = dobjAcadTextStyle2.ObjectID; dblnValid = true; } break; case 5: dobjAcadLineTypes2 = (AcadLineTypes)vobjAcadTable; dobjAcadLinetype2 = (AcadLineType)dobjAcadLineTypes2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadLinetype2 != null) { rdblObjectID = dobjAcadLinetype2.ObjectID; dblnValid = true; } break; case 4: dobjAcadLayers2 = (AcadLayers)vobjAcadTable; dobjAcadLayer2 = (AcadLayer)dobjAcadLayers2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadLayer2 != null) { rdblObjectID = dobjAcadLayer2.ObjectID; dblnValid = true; } break; case 3: dobjAcadDimStyles2 = (AcadDimStyles)vobjAcadTable; dobjAcadDimStyle2 = (AcadDimStyle)dobjAcadDimStyles2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadDimStyle2 != null) { rdblObjectID = dobjAcadDimStyle2.ObjectID; dblnValid = true; } break; case 9: dobjAcadViewports2 = (AcadViewports)vobjAcadTable; dobjAcadViewport2 = (AcadViewport)dobjAcadViewports2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadViewport2 != null) { rdblObjectID = dobjAcadViewport2.ObjectID; dblnValid = true; } break; case 1: dobjAcadRegisteredApplications2 = (AcadRegisteredApplications)vobjAcadTable; dobjAcadRegisteredApplication2 = (AcadRegisteredApplication)dobjAcadRegisteredApplications2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadRegisteredApplication2 != null) { rdblObjectID = dobjAcadRegisteredApplication2.ObjectID; dblnValid = true; } break; case 8: dobjAcadViews2 = (AcadViews)vobjAcadTable; dobjAcadView2 = (AcadView)dobjAcadViews2.FriendGetItem(RuntimeHelpers.GetObjectValue(vvarValue)); if (dobjAcadView2 != null) { rdblObjectID = dobjAcadView2.ObjectID; dblnValid = true; } break; } } bool InternCheckSymTable = dblnValid; dobjAcadBlocks2 = null; dobjAcadBlock2 = null; dobjAcadUCSs2 = null; dobjAcadUCS2 = null; dobjAcadTextStyles2 = null; dobjAcadTextStyle2 = null; dobjAcadLineTypes2 = null; dobjAcadLinetype2 = null; dobjAcadLayers2 = null; dobjAcadLayer2 = null; dobjAcadDimStyles2 = null; dobjAcadDimStyle2 = null; dobjAcadViewports2 = null; dobjAcadViewport2 = null; dobjAcadRegisteredApplications2 = null; dobjAcadRegisteredApplication2 = null; dobjAcadViews2 = null; dobjAcadView2 = null; return(InternCheckSymTable); }
internal bool FriendCheckValue(object vvarValue, AcadTable vobjAcadTable, ref string nrstrErrMsg) { nrstrErrMsg = null; return(InternCheckValue(RuntimeHelpers.GetObjectValue(vvarValue), vobjAcadTable, ref mdblObjectID, ref nrstrErrMsg)); }