日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速定制开发CAD电路图(电气原理图)详细流程及源码 浮云E绘图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

電氣設備的工作原理及各電器元件相互之間的關系,對于快速掌握設備工作原理、分析電氣線路、排除電路故障、程序編寫等十分有益。現有基于浮云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 浮云繪圖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 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控制線條屬性為例

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)業務屬性,與自己項目的業務對象關聯上,就可以找到每一個圖元對象,并控制圖元的線、區域、文字、圖片的顯示狀態。

總結

以上是生活随笔為你收集整理的快速定制开发CAD电路图(电气原理图)详细流程及源码 浮云E绘图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。