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

您所在的位置:网站首页 cad的电路图 快速定制开发CAD电路图(电气原理图)详细流程及源码 浮云E绘图

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

2023-09-04 02:14| 来源: 网络整理| 查看: 265

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

1. 创建图元模板

电路原理图经常有一些复杂的元器件,比如继电器、传感器、变压器等, 浮云E绘图编辑器支持创建复合图元模板,后续直接模板图元绘图,更灵活、便捷。

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

 绘制复合图元流程:画第1个基础图元 -> 填写第1个图元业务属性“标识”内容 -> 画第2个基础图元 -> ...... -> 画第N个基础图元 -> 最后画一个矩形图元 -> 设置最后的矩形图元属性:不填充、线条隐藏 -> 选中此次所有基础图元,点“组合”即完成一个复合图元的制作。

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

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

2. 加载使用复合图元

上一步功能可以为电路原理图、工艺流程图、工业控制图等各领域,创建复合图元模板库。使用复合图元模板库操作流程:菜单“视图” -> “模板绘图” -> 工具栏按钮“加载模板” -> 选择复合图元模板库数据文件 -> 勾选此次绘图需用到的复合图元(将在工具栏动态创建复合图元按钮)-> 点工具栏某复合图元按钮,即可以绘制复合图元。

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

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

4. 创建新工程,基于FYEDC.dll绘图组件接口,控制图

下载浮云E绘图SDK3.0,包含电路图编辑器+绘图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 浮云绘图,定制开发绘图工具、工控曲线、自定义报表等, QQ 316868127 //组件接口 [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 SetGridShow(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控制线条属性为例

// 作者:浮云绘图,定制开发绘图工具、工控曲线、自定义报表等,可驻场开发。 // 联系:QQ 316868127 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)业务属性,与自己项目的业务对象关联上,就可以找到每一个图元对象,并控制图元的线、区域、文字、图片的显示状态。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3