SolidEdge的智能圖框屬性編輯器
2013-05-17 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
丁建新 高靜丹 來源:e-works
關鍵字:SolidEdge MicrosoftVisualStudio VB.NET 智能圖框
介紹了基于SolidEdge,利用MicrosoftVisualStudio(VB.NET)進行二次開發(fā)的一個具有Windows界面的智能圖框屬性編輯器。該編輯器使圖框屬性得到了統(tǒng)一的管理,不但可以接受用戶的參數(shù)輸入,并且又有智能繼承功能,使我們在出圖時更方便、快捷。
1、前言
SolidEdge 是SIEMENS 公司旗下的一款基于Windows 環(huán)境的中高端CAD 軟件。它具有強大的二維和三維繪圖功能,還提供了多種二次開發(fā)的途徑,可以方便地開發(fā)出自己的應用程序來擴展SolidEdge 的功能,且界面友好,被廣泛應用于各種行業(yè)中。
本公司自從引進SolidEdge 后,已將其應用到公司的各個領域,并在應用的基礎上也對其進行了二次開發(fā),智能圖框屬性編輯器就是其中一項二次開發(fā)的成果。圖框是工程師工作中最常用到的一種具有企業(yè)化特性的工具,隨著業(yè)務量的增大,出圖及圖紙更新的速度明顯的走快,對圖框中一些內(nèi)容的操作也變得極其的繁瑣。因此,對圖框內(nèi)容能夠實現(xiàn)統(tǒng)一的管理并有一定的智能化,在保證工程師工作質量的同時提高其工作的速度,具有顯著的實際應用意義,因此本人就開發(fā)了這個基于SolidEdge 的智能圖框屬性編輯器。
2、智能圖框屬性編輯器的開發(fā)
智能圖框屬性編輯器,如圖一所示,是將圖框中所涉及到的需要修改的內(nèi)容全部歸納在一起??梢栽谧詣幼R別工程圖中所引用零件的零件名稱、圖號及比例等(如圖二所示)的同時;接受用戶的輸入,并將這些數(shù)據(jù)的內(nèi)容全部反應在相對應的圖框中;也可以在進行圖紙的更新時,自動識別原先圖框中的屬性值,以便進行數(shù)據(jù)的更新。該編輯器的設計理念是用VB.NET來提取、修改和增加SolidEdge中的參數(shù)信息,并通過SolidEdge中的宏這個程序接口功能將開發(fā)的程序與SolidEdge完美結合,從而實現(xiàn)了圖框屬性的統(tǒng)一管理。
圖 1:(智能圖框編輯器)
圖 2:(智能圖框編輯器工作啟動狀態(tài))
2.1 用戶操作窗口的設計
利用VB.NET的可視化技術,可以創(chuàng)建用戶的操作界面。如圖三所示,操作界面上主要分為四部分:設計屬性、代號屬性、技術要求及換版屬性。
圖 3:(智能圖框編輯器各工作界面)
通過窗體的啟動等控件來提取當前SolidEdge工程圖所涉及的零部件信息,然后根據(jù)需要來對各個圖框屬性進行賦值,之后通過控件"確定"來實現(xiàn)對當前工程圖圖框中相關屬性值的修改和增加,最后編寫相關的程序代碼。對于智能圖框屬性編輯器,其核心代碼是有關當前工程圖的屬性提取和修改、主視圖比例的自動提取以及技術要求的輸入。
2.2 程序代碼及實現(xiàn)技術
程序代碼是針對用戶界面各個控件的一種語言說明。在智能圖框屬性編輯器中,最主要的技術成份是窗體啟動和控件"確定"的代碼。
2.2.1 公用變量的聲明
Inherits System.Windows.Forms.Form
Private objSheet, objDocument, objSolidEdge, objvr As Object
Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgeDraft.DraftDocument
Dim objSheet1 As SolidEdgeDraft.Sheet
Dim objTxtboxs As SolidEdgeFrameworkSupport.TextBoxes
Dim objTxtbox As SolidEdgeFrameworkSupport.TextBox
此段程序代碼主要作用是對將要用到的變量進行聲明。
2.2.2 窗口啟動時的代碼
Me.InstructorTableAdapter.Fill(Me.InstructorDataSet.instructor)
Me.MaterialTableAdapter.Fill(Me.InstructorDataSet.material)
On Error Resume Next
objSolidEdge = Nothing
objSolidEdge = GetObject(, "SolidEdge.Application")
If objSolidEdge Is Nothing Then
MsgBox("您必須在SolidEdge工程圖環(huán)境下才能使用本程序。")
End
End If
On Error GoTo 0
On Error Resume Next
objvr = objSolidEdge.ActiveDocument
If Err.Number Then
MsgBox("當前沒有活動的文件")
End
End If
Me.Height = 423
Me.Width = 362
On Error GoTo 0
初始數(shù)據(jù)載入
設計者.Items.Add("設計者A")
設計者.Items.Add("設計者B ")
校對者;表面處理;說明;備注等ComboBox控件的數(shù)據(jù)載入方法和控件設計者的數(shù)據(jù)載入方式一樣,當然也可以用數(shù)據(jù)庫的形式進行加載。
Select Case objSolidEdge.ActiveEnvironment
Case "Detail" 圖紙環(huán)境
SSTab2.SelectedIndex = 0
讀入以前輸入的信息
On Error Resume Next
設計屬性
圖號.Text = objvr.Properties.Item("Custom").Item("圖號").Value
零件名稱.Text = objvr.Properties.Item("Custom").Item("零件名稱").Value
設計者、設計日期以及代號屬性等數(shù)據(jù)的讀取依此類推
比例自動
On Error Resume Next
If 中間變量.Text = 0 Then
If objvr.activesheet.DrawingViews.Item(1).ScaleFactor < 1 Then
圖紙比例.Text = "1:" & Format(1 / objvr.activesheet.DrawingViews.Item (1).ScaleFactor)
Else
圖紙比例.Text = Format(objvr.activesheet.DrawingViews.Item(1).ScaleFactor) & ":1"
End If
Button8.Visible = True
Button9.Visible = False
Else
圖紙比例.Enabled = True
圖紙比例.Text = objvr.Properties.Item("Custom").Item("圖紙比例").Value
Button9.Visible = True
Button8.Visible = False
End If
更新顯示
Call objvr.UpdatePropertyTextDisplay()
此段程序代碼(已將一些通用代碼縮減,只保留了重要部分)主要作用是當啟動程序后:程序自動檢測打開程序的工作環(huán)境,因為本程序只允許在SolidEdge工程圖環(huán)境下使用;程序中的各個ComboBox控件被賦值;程序自動讀取當前工程圖中的已有數(shù)據(jù)并加載到程序相對應的控件上以便修改;程序自動捕捉當前工程圖的主視圖比例。
2.2.3 控件"確定"程序代碼
開始寫入屬性
Select Case objSolidEdge.ActiveEnvironment
Case "Detail" 圖紙環(huán)境
Call objvr.Properties.Item("Custom").Add("圖號", 圖號.Text)
其它如零件名稱、設計日期等依此類推
中間變量
Call objvr.Properties.Item("Custom").Add("中間變量", 中間變量.Text)
End Select
技術要求
Dim i As Integer
For i = 0 To ListBox2.Items.Count - 1
TextBox2.Text = TextBox2.Text + Chr(49 + i) + "." + ListBox2.Items.Item(i) + Chr(13) + Chr(10)
TextBox2.Text = TextBox2.Text + Chr(49 + i) + "." + ListBox2.Items.Item(i)
TextBox2.Text = TextBox2.Text + Chr(13)
Next i
If 啟用.CheckState = CheckState.Checked Then
Create/get the application with specific settings
On Error Resume Next
objApp = GetObject(, "SolidEdge.Application")
objDoc = objApp.ActiveDocument
objSheet1 = objDoc.ActiveSheet
Create a TextBox object
objTxtboxs = objSheet1.TextBoxes
objTxtbox = objTxtboxs.Add(x1:=0.04, y1:=0.11, z1:=0)
If CheckBox1.CheckState = CheckState.Unchecked Then
objTxtbox.Edit.TextSize = "0.0035"
objTxtbox.Edit.Font = "宋體"
objTxtbox.Edit.AspectRatio = "1"
objTxtbox.Text = "技術要求:" + Chr(13) + TextBox2.Text
Else
objTxtbox.Edit.TextSize = "0.0035"
objTxtbox.Edit.Font = "Arial"
objTxtbox.Edit.AspectRatio = "1"
objTxtbox.Text = "Notice:" + Chr(13) + TextBox2.Text
End If
objApp = Nothing
End If
更新顯示
Call objvr.UpdatePropertyTextDisplay()
End
此段程序代碼(已將一些通用代碼縮減,只保留了重要部分)的主要作用是將用戶輸入的參數(shù)信息保存到當前打開的工程圖中,其中比較有特色的是技術要求的輸入這段代碼,它完全控制了SolidEdge中TEXT這個參數(shù)。
2.3 對應工程圖標準圖框的設置
在設計好的工程圖標準圖框中引入圖框屬性參數(shù),具體方法是借用SolidEdge的"選擇屬性文本"這個工具進行設置,如圖四所示。
圖 4:(屬性值的引入方式)
2.4 程序的應用
智能圖框屬性編輯器在經(jīng)過長時間的應用后,實際證明了不但可以通過該編輯器有效的將SolidEdge工程圖圖框中的屬性參數(shù)統(tǒng)一的管理起來,而且更重要的是它較大的提高了出圖人員的工作效率。
3、結論
當今世界,分秒必爭的環(huán)境下,盡量縮短工程圖紙的處理時間也變的尤為的重要,因此,本文所提到的智能圖框屬性編輯器不但填補了這方面的空白,并且著實大大提高了工程處理的處理時間,具有很大的實際意識。
相關標簽搜索:SolidEdge的智能圖框屬性編輯器 AutoCAD培訓 AutoCAD培訓課程 AutoCAD圖紙設計 AutoCAD在線視頻 AutoCAD技術學習教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓