锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

快速定制开发CAD电路图(电气原理图)详细流程及源码 浮云E绘图

时间:2024-01-04 20:37:01 cad一50继电器继电器cad50

电气设备的工作原理和各电气元件之间的关系,有利于快速掌握设备的工作原理,分析电气线路,消除电路故障,编程。现有的基于浮云E绘图SDK(包括电路图编辑器 绘图DLL组件 API Demo 电子元件模板库 说明文档),可快速绘制开发CAD电路图(电气原理图),并且实时更新图形各元件的状态。

1. 创建图元模板

继电器传感器变压器等复杂器、变压器等复杂部件, 浮云E绘图编辑器支持创建复合图元模板,后续直接模板图元绘图更加灵活方便。

创建和使用复合图元的操作过程:菜单视图 -> 模板绘图 -> 工具栏按钮新模板 --> 在绘图区画复合图元 -> 工具栏按钮保持模板数据文件,即完成复合图元库的制作。请参见下一节。

绘制复合图元流程:绘制第一个基本图元 -> 填写第一图元业务属性标识 -> 画第二个基本图元 -> ... -> 画N个基础图元 -> 最后画一个矩形图元 -> 设置最后的矩形图元属性:不填充、线条隐藏 -> 本次选择所有基本图元,点组合就是完成复合图元的制作。

以上图第一个模板图元无极继电器1为例,画第一个基本图元(圆) -> 设置圆标识属性(无极继电器1) -> 左边画一条直线 -> 画右侧直线 ->画矩形框住这个圆 2条直线 ->设置矩形属性:不填充,隐藏线条 -> 框选住1圆 2线段 1矩形,点击组合完成。然后可以继续画其他复合模板图元。然后可以继续画其他复合模板图元。

第一个基本图元的标识内容是整个复合图元的名称,将在加载动态创建复合图元操作按钮时设置为按钮名称。

2. 复合图元加载

上一步功能可以为电路原理图、工艺流程图、工业控制图等领域创建复合图元模板库。菜单视图 -> 模板绘图 -> 工具栏按钮加载模板 -> 选择复合图元模板库数据文件 -> 检查绘图中使用的复合图元(复合图元按钮将在工具栏中动态创建)-> 点击工具栏中的复合图元按钮绘制复合图元。

3. 绘制电路原理图,保存绘图数据文件

使用浮云E绘图编辑器操作流程:工具栏按钮新建 -> 点击左侧工具栏基础图元按钮(如直线) ->画直线 -> 点击其他图元按钮(包括复合图元按钮)绘图 -> ... -> 工具栏按钮保存绘图数据文件,完成图形编辑绘制。通过自己的项目,通过自己的项目FYEDC.dll加载绘图数据文件,控制线条(颜色、虚实、宽度)、区域、文字等属性值。

4. 基于创建新项目FYEDC.dll控制图纸组件接口

下载浮云E绘图SDK3.包括电路图编辑器 绘图DLL组件 API Demo 电子元件模板库 说明文档浮云E绘图SDK3.0.快速开发开源电路图、电子图、工业控制系统图-桌面系统文档资源-CSDN下载

4.1 打开浮云E绘图API Demo查看工程源码FYEDC.dll接口定义

C#和VC 调用dll步骤、接口指针、字符串等对应关系_浮云画博客-CSDN博客_vc 调用dll

Demo有VC版和C#版,下面列出C#部分导出函数定义版本(完整版本)Demo工程源码)

#region 浮云绘图DLL 接口         //组件接口         [DllImport("FYEDC.dll", EntryPoint = "NewFYEDC", CallingConvention = CallingConvention.Cdecl)]         public static extern IntPtr NewFYEDC();         [DllImport("FYEDC.dll", EntryPoint = "CreateFYEDC", CallingConvention = CallingConvention.Cdecl)]         public static extern void CreateFYEDC(IntPtr canvas, IntPtr hParentWnd, int x, int y, int w, int h);         [DllImport("FYEDC.dll", EntryPoint = "LoadShapes", CallingConvention = CallingConvention.Cdecl)]         public static extern void LoadShapes(IntPtr canvas, string fileName);         [DllImport("FYEDC.dll", EntryPoint = "DeleteFYEDC", CallingConvention = CallingConvention.Cdecl)]         public static extern void DeleteFYEDC(IntPtr canvas);          // 图元对象         [DllImport("FYEDC.dll", EntryPoint = "GetShapeCount", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetShapeCount(IntPtr canvas);          [DllImport("FYEDC.dll", EntryPoint = "GetShape", CallingConvention = CallingConvention.Cdecl)]         public static extern IntPtr GetShape(IntPtr canvas, string type, string name);         [DllImport("FYEDC.dll", EntryPoint = "GetShapeAt", CallingConvention = CallingConvention.Cdecl)]         public static extern IntPtr GetShapeAt(IntPtr canvas, int index);          [DllImport("FYEDC.dll", EntryPoint = "GetmCompElementCount", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetmCompElementCount(IntPtr editor, string type, string name);         [DllImport("FYEDC.dll", EntryPoint = "GetCompElement", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetCompElement(ref IntPtr diagrams, IntPtr editor, string type, string name);           [DllImport("FYEDC.dll", EntryPoint = "SetLineWidth", CallingConvention = CallingConvention.Cdecl)]         public static extern void SetLineWidth(IntPtr canvas, IntPtr shape, int width);         [DllImport("FYEDC.dll", EntryPoint = "GetLineWidth", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetLineWidth(IntPtr shape);          [DllImport("FYEDC.dll", EntryPoint = "SetLineEndMode", CallingConvention = CallingConvention.Cdecl)]         public static extern void SetLineEndMode(IntPtr canvas, IntPtr shape, int mode);         [DllImport("FYEDC.dll", EntryPoint = "GetLineEndMode", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetLineEndMode(IntPtr shape);          [DllImport("FYEDC.dll", EntryPoint = "SetFillColor", CallingConvention = CallingConvention.Cdecl)]         public static extern void SetFillColor(IntPtr canvas, IntPtr shape, int color);         [DllImport("FYEDC.dll", EntryPoint = "GetFillColor", CallingConvention = CallingConvention.Cdecl)]         public static extern int GetFillColor(IntPtr shape);          // 网格         [DllImport("FYEDC.dll", EntryPoint = "SetGridShow", CallingConvention = CallingConvention.Cdecl)]         public static extern void StGridShow(IntPtr canvas, int bShow);

        // 存为图片
        [DllImport("FYEDC.dll", EntryPoint = "SaveToPicture", CallingConvention = CallingConvention.Cdecl)]
        public static extern int SaveToPicture(IntPtr canvas, string fileName);
#endregion 浮云绘图DLL 接口

4.2 查看浮云E绘图API Demo接口调用示例

以C# API Demo控制线条属性为例

        private void btnLine_Click(object sender, EventArgs e)
        {
            IntPtr shape = GetShapeAt(m_shapeCanvas, m_shapeSeqNum);    //获得图元对象
            if (shape != IntPtr.Zero)
            {
                // 获取数据
                LinePropForm frm = new LinePropForm();
                frm.m_iSeqNum = m_shapeSeqNum;
                frm.m_iLineColor = GetLineColor(shape);
                frm.m_iLineWidth = GetLineWidth(shape);
                frm.m_iLineStyle = GetLineStyle(shape);
                frm.m_iEndMode = GetLineEndMode(shape);

                // 设置数据
                if (DialogResult.OK == frm.ShowDialog())
                {
                    m_shapeSeqNum = frm.m_iSeqNum;      // 可以修改默认的图元序号
                    if (GetShapeCount(m_shapeCanvas) - 1 < m_shapeSeqNum)
                        m_shapeSeqNum = GetShapeCount(m_shapeCanvas) - 1;
                    if (m_shapeSeqNum < 0)
                        m_shapeSeqNum = 0;

                    IntPtr shape2 = GetShapeAt(m_shapeCanvas, m_shapeSeqNum);
                    if (shape2 != IntPtr.Zero)
                    {
                        SetLineColor(m_shapeCanvas, shape2, frm.m_iLineColor);
                        SetLineWidth(m_shapeCanvas, shape2, frm.m_iLineWidth);
                        SetLineStyle(m_shapeCanvas, shape2, frm.m_iLineStyle);
                        SetLineEndMode(m_shapeCanvas, shape2, frm.m_iEndMode);
                    }
                }
            }
        }

4.3 创建自己的新工程,调用FYEDC.dll控制图元状态

通过绘图时设置图元的标识(Title)、名称(Name)业务属性,与自己项目的业务对象关联上,就可以找到每一个图元对象,并控制图元的线、区域、文字、图片的显示状态。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章