private void btnCircle_Click(object sender, EventArgs e) { // Getting running AutoCAD instance by Marshalling by passing Programmatic ID as a string, AutoCAD.Application is the Programmatic ID for AutoCAD. AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); // Now AcadApp has the reference to the running AutoCAD instance, AcadApp object acts as a port for accessing running instance of AutoCAD. // Syntax for creating circle in AutoCAD // AcadApp.ActiveDocument.ModelSpace.AddCircle(CenterOfCircle, RadiusOfCircle); // // AcadApp - Reference to the running instance of AutoCAD. // ActiveDocument - Represents the current working drawing in AutoCAD. // ModelSpace - Work Area in the current drawing. // AddCricle - Method, which adds a circle to the modelspace of the current drawing using the CenterPoint and Radius. // CenterOfCircle - 3 Dimensional double array variable holds the center point of the circle in the X, Y and Z axis. // RadiusOfCircle - Double variable holds the radius of circle. // Definfing the center point for the circle, in this example, we are using origin(0,0,0) as the center of circle. double[] CenterOfCircle = new double[3]; CenterOfCircle[0] = 0; CenterOfCircle[1] = 0; CenterOfCircle[2] = 0; // Defining radius of circle from the user input. double RadiusOfCircle = Convert.ToDouble(txtRadius.Text.Trim()); // Adding Circle to the modelspace and getting reference to the circle created. Circle = AcadApp.ActiveDocument.ModelSpace.AddCircle(CenterOfCircle, RadiusOfCircle); }
private void button_Click(object sender, RoutedEventArgs e) { AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); string template = "acad.dwt"; AcadDocument dwg = AcadApp.Documents.Add(template); //AcadApp = (AcadApplication)Activator.CreateInstance(Type.GetTypeFromProgID("AutoCAD.Application.22"), true); //AcadApp.Visible = true; if (incomer.Contains("2500 4P ACB")) { double RadiusOfCircle = 5; double[] CenterOfCircle = new double[3]; CenterOfCircle[0] = 0; CenterOfCircle[1] = 0; CenterOfCircle[2] = 0; Circle = AcadApp.ActiveDocument.ModelSpace.AddCircle(CenterOfCircle, RadiusOfCircle); double[] CenterOfBlock = new double[3]; CenterOfBlock[0] = 0; CenterOfBlock[1] = 0; CenterOfBlock[2] = 0; //AcadApp.ActiveDocument.ModelSpace.InsertBlock(CenterOfBlock, "D:\\Block\\250A_MCCB_3P.dwg", 1, 1, 1, 0); } }
public static Circle2D Circle2D(this AcadCircle acadCircle) { double[] center = acadCircle.Center; Point2D cc = new Point2D(center[0], center[1]); double rr = acadCircle.Radius; return(new Circle2D(cc, rr)); }
/// <summary> /// Crear una circunferencia /// </summary> /// <param name="Center">Insertion point del cirvulo. Ejemplo: (x,y,z)</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Radio">Radio de la circunferencia</param> public static void AddCircle(double [] Center, double Radio, string Layer) { if (AcadDoc != null) { AcadCircle acadCircle = AcadDoc.ModelSpace.AddCircle(Center, Radio); acadCircle.Layer = Layer; acadCircle.Update(); } }
/// <summary> /// Crear una circunferencia /// </summary> /// <param name="Center">Insertion point del cirvulo. Ejemplo: (x,y,z)</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Radio">Radio de la circunferencia</param> public static void AddCircle(double[] Center, double Radio, string Layer) { try { if (AcadDoc != null) { AcadCircle acadCircle = AcadDoc.ModelSpace.AddCircle(Center, Radio); acadCircle.Layer = Layer; acadCircle.Update(); } } catch { NotificadorErrores?.Invoke("Error inesperado."); } }
/// <summary> /// 高亮显示已标记部分 /// </summary> /// <param name="StartPoint">起始点</param> /// <param name="EndPoint">结束点</param> /// <param name="Center">中心点</param> private void ReShow(double[] StartPoint, double[] EndPoint, double[] Center) { var caddocument = tAcadApplication.ActiveDocument; if (Center == null) { AcadLine line = caddocument.ModelSpace.AddLine(StartPoint, EndPoint); line.color = ACAD_COLOR.acByLayer; AcadObj = line; } else { AcadCircle line = caddocument.ModelSpace.AddCircle(Center, 60); line.color = ACAD_COLOR.acByLayer; AcadObj = line; } }
private void CreateCircle_Click(object sender, RoutedEventArgs e) { AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); double[] CenterOfCircle = new double[3]; CenterOfCircle[0] = 0; CenterOfCircle[1] = 0; CenterOfCircle[2] = 0; if (pointX.Text != "" || pointY.Text != "" || pointZ.Text != "") { CenterOfCircle[0] = double.Parse(pointX.Text); CenterOfCircle[1] = double.Parse(pointY.Text); CenterOfCircle[2] = double.Parse(pointZ.Text); } double RadiusOfCircle = Convert.ToDouble(TextBox.Text.Trim()); Circle = AcadApp.ActiveDocument.ModelSpace.AddCircle(CenterOfCircle, RadiusOfCircle); }
public static void CreateAutoCADObject() { // Get //AcadApplication acadApp = null; AcadCircle circle = null; AcadAcCmColor color = null; try { object obj = Marshal.GetActiveObject("AutoCAD.Application.17"); if (obj != null) { gbl_app = obj as AcadApplication; //double[] cen = new double[] { 0, 0, 0 }; //circle = acadApp.ActiveDocument.Database.ModelSpace.AddCircle(cen, 10); //color = acadApp.GetInterfaceObject("Autocad.AcCmColor.17") as AcadAcCmColor; //color.SetRGB(50, 150, 250); //circle.TrueColor = color; //acadApp.ZoomExtents(); // Draw try { //CloseAllInstance(); //gbl_app = new AcadApplication(); gbl_doc = gbl_app.ActiveDocument; gbl_app.Application.Visible = true; gbl_modSpace = (AcadModelSpaceClass)gbl_doc.ModelSpace; gbl_doc.Linetypes.Load("HIDDEN", "acad.lin"); gbl_doc.Linetypes.Load("CENTER", "acad.lin"); //Other Objects Layer SwitchLayer = PF.gbl_doc.Layers.Add("Switch110Layer"); //SwitchLayer.color = Autodesk.AutoCAD.AcColor.acGreen; PF.gbl_doc.ActiveLayer = SwitchLayer; //Layer For Donuts TerminalsLayer = PF.gbl_doc.Layers.Add("TerminalsLayer"); // TerminalsLayer.color = AutoCAD.AcColor.acRed; //Layer Termination Points TerminationPoints = PF.gbl_doc.Layers.Add("TerminationPoints"); //TerminationPoints.color = AutoCAD.AcColor.acWhite; } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { MessageBox.Show("AutoCAD chưa khởi động hoặc không đúng phiên bản!"); } } catch { MessageBox.Show("AutoCAD chưa khởi động hoặc không đúng phiên bản!"); } //finally //{ // if (color != null) Marshal.FinalReleaseComObject(color); // if (circle != null) Marshal.FinalReleaseComObject(circle); // if (gbl_app != null) Marshal.FinalReleaseComObject(gbl_app); //} }
static void Main(string[] args) { String curfile = System.Reflection.Assembly.GetExecutingAssembly().Location; String curDirectory = Path.GetDirectoryName(curfile); string text = "一二三四五六七八九二二三四五六七八九三二三四五六七八九四二三四五六七八九五二三四五六七八九六二三四五六七八九七二三四五六七八九八二三四五六七八九九二三四五六七八九十二三四五六七八九"; int len = text.Length; int start = 0; int cur = start; while (true) { cur = Global.AdvanceUtf8(text, start, 250); if (cur == len || cur == -1) { Console.WriteLine(text.Substring(start, cur - start)); break; } Console.WriteLine(text.Substring(start, cur - start)); start = cur; } // Test DXF read/write Global.EnableDebugInfo(true); DxfData dxf = new DxfData(); var pDim = new AcadDimAln(); pDim.m_DefPoint.SetPoint(80, 120); pDim.m_TextPosition = new CDblPoint(30, 70); pDim.m_ExtLine1Point.SetPoint(0, 0); pDim.m_ExtLine2Point.SetPoint(100, 100); pDim.m_DimStyleName = "ISO-25"; dxf.m_Objects.Add(pDim); //auto pTable = std::make_shared<AcadTable>(); //pTable->m_InsertionPoint.SetPoint(0, 0); //pTable->InitializeCells(2, 2, DXF::CellType::TEXT_CELL); //pTable->SetColWidth(600); //pTable->SetRowHeight(330); //for (int i = 0; i < pTable->m_RowCount; ++i) // for (int j = 0; j < pTable->m_ColCount; ++j) // { // Cell & c = pTable->GetCell(i, j); // c.m_TextHeight = 250; // std::shared_ptr<CellText> & ct = dynamic_pointer_cast<CellText>(c.m_Content); // ct->m_Text = "0*0"; // } //dxf.m_Objects.push_back(pTable); //====================== 文字样式 ====================== TextStyleData txtStyle = new TextStyleData(); // txtStyle.m_TrueType = "宋体"; //SimSun // txtStyle.m_PrimaryFontFile = "fsdb_e.shx"; txtStyle.m_BigFontFile = "hztxt.shx"; // txtStyle.m_ObliqueAngle = 20; txtStyle.m_WidthFactor = 0.7; txtStyle.m_Height = 2.5; // dxf.m_TextStyles.Add("字体1", txtStyle); //====================== 标注样式 ====================== DimStyleData dimStyle = new DimStyleData(); dimStyle.TextStyle = "字体1"; dimStyle.VerticalTextPosition = AcDimVerticalJustification.acAbove; // dxf.m_DimStyles.Add("标注1", dimStyle); AcadDimRot dim = new AcadDimRot(); dim.m_DefPoint.SetPoint(80, 120); dim.m_TextPosition = new CDblPoint(30, 70); dim.m_ExtLine1Point.SetPoint(0, 0); dim.m_ExtLine2Point.SetPoint(100, 100); dim.m_DimStyleName = "标注1"; dxf.m_Objects.Add(dim); //====================== 填充 ====================== var pH = new AcadHatch(); var pC = new AcadCircle(); pC.m_Center.SetPoint(10, 10); pC.m_Radius = 50; pH.AddEntity(pC, -1); pH.AddAssociatedEntity(pC, -1); pH.m_PatternName = "SOLID"; pC.m_Reactors.Add(new WeakReference(pH)); dxf.m_Objects.Add(pC); dxf.m_Objects.Add(pH); //====================== 线宽 ====================== var pP2a = new AcadLWPLine(); pP2a.m_Vertices.Add(new CDblPoint(20, 0)); pP2a.m_Vertices.Add(new CDblPoint(30, 0)); //pP2a.SetStartWidth(0, 0); //pP2a.SetEndWidth(0, 10); pP2a.SetWidth(0, 0, 10); // pP2a.SetWidth(1, 10, 10); dxf.m_Objects.Add(pP2a); var pP2b = new AcadLWPLine(); pP2b.m_Vertices.Add(new CDblPoint(20, 20)); pP2b.m_Vertices.Add(new CDblPoint(30, 20)); pP2b.SetConstWidth(10); dxf.m_Objects.Add(pP2b); //====================== 填充 ====================== var pP3 = new AcadLWPLine(); pP3.m_Vertices.Add(new CDblPoint(30, 30)); pP3.m_Vertices.Add(new CDblPoint(40, 40)); pP3.m_Vertices.Add(new CDblPoint(40, 20)); pP3.m_Closed = true; var pH3 = new AcadHatch(); pH3.AddEntity(pP3, -1); pH3.AddAssociatedEntity(pP3, -1); pH3.m_PatternName = "SOLID"; pP3.m_Reactors.Add(new WeakReference(pH3)); dxf.m_Objects.Add(pP3); dxf.m_Objects.Add(pH3); DxfWriter dxfWriter = new DxfWriter(dxf); //dxfWriter.WriteDxf(@"G:\SharedWithVM\test2.dxf", @"..\DxfCs\acadiso.lin", @"..\DxfCs\acadiso.pat", new CDblPoint(0, 0), 100); dxfWriter.WriteDxf(curDirectory + @"\test2.dxf", curDirectory + @"\acadiso.lin", curDirectory + @"\acadiso.pat", new CDblPoint(0, 0), 100); if (args.Length == 1) { DxfReader dxfReader = new DxfReader(dxf); if (dxfReader.ReadDxf(args[0], false)) { dxfWriter.WriteDxf(@"G:\SharedWithVM\test3.dxf", @"..\DXF\acadiso.lin", @"..\DXF\acadiso.pat", new CDblPoint(2000, 1400), 3300); } } }