SolidEdge的智能圖框?qū)傩跃庉嬈?/h1>
2013-05-17 by:廣州有限元分析、培訓(xùn)中心-1CAE.COM 來源:仿真在線
丁建新 高靜丹 來源:e-works
關(guān)鍵字:SolidEdge MicrosoftVisualStudio VB.NET 智能圖框
介紹了基于SolidEdge,利用MicrosoftVisualStudio(VB.NET)進(jìn)行二次開發(fā)的一個(gè)具有Windows界面的智能圖框?qū)傩跃庉嬈?。該編輯器使圖框?qū)傩缘玫搅私y(tǒng)一的管理,不但可以接受用戶的參數(shù)輸入,并且又有智能繼承功能,使我們?cè)诔鰣D時(shí)更方便、快捷。
1、前言
SolidEdge 是SIEMENS 公司旗下的一款基于Windows 環(huán)境的中高端CAD 軟件。它具有強(qiáng)大的二維和三維繪圖功能,還提供了多種二次開發(fā)的途徑,可以方便地開發(fā)出自己的應(yīng)用程序來擴(kuò)展SolidEdge 的功能,且界面友好,被廣泛應(yīng)用于各種行業(yè)中。
本公司自從引進(jìn)SolidEdge 后,已將其應(yīng)用到公司的各個(gè)領(lǐng)域,并在應(yīng)用的基礎(chǔ)上也對(duì)其進(jìn)行了二次開發(fā),智能圖框?qū)傩跃庉嬈骶褪瞧渲幸豁?xiàng)二次開發(fā)的成果。圖框是工程師工作中最常用到的一種具有企業(yè)化特性的工具,隨著業(yè)務(wù)量的增大,出圖及圖紙更新的速度明顯的走快,對(duì)圖框中一些內(nèi)容的操作也變得極其的繁瑣。因此,對(duì)圖框內(nèi)容能夠?qū)崿F(xiàn)統(tǒng)一的管理并有一定的智能化,在保證工程師工作質(zhì)量的同時(shí)提高其工作的速度,具有顯著的實(shí)際應(yīng)用意義,因此本人就開發(fā)了這個(gè)基于SolidEdge 的智能圖框?qū)傩跃庉嬈鳌?BR>
2、智能圖框?qū)傩跃庉嬈鞯拈_發(fā)
智能圖框?qū)傩跃庉嬈?如圖一所示,是將圖框中所涉及到的需要修改的內(nèi)容全部歸納在一起??梢栽谧詣?dòng)識(shí)別工程圖中所引用零件的零件名稱、圖號(hào)及比例等(如圖二所示)的同時(shí);接受用戶的輸入,并將這些數(shù)據(jù)的內(nèi)容全部反應(yīng)在相對(duì)應(yīng)的圖框中;也可以在進(jìn)行圖紙的更新時(shí),自動(dòng)識(shí)別原先圖框中的屬性值,以便進(jìn)行數(shù)據(jù)的更新。該編輯器的設(shè)計(jì)理念是用VB.NET來提取、修改和增加SolidEdge中的參數(shù)信息,并通過SolidEdge中的宏這個(gè)程序接口功能將開發(fā)的程序與SolidEdge完美結(jié)合,從而實(shí)現(xiàn)了圖框?qū)傩缘慕y(tǒng)一管理。
圖 1:(智能圖框編輯器)
圖 2:(智能圖框編輯器工作啟動(dòng)狀態(tài))
2.1 用戶操作窗口的設(shè)計(jì)
利用VB.NET的可視化技術(shù),可以創(chuàng)建用戶的操作界面。如圖三所示,操作界面上主要分為四部分:設(shè)計(jì)屬性、代號(hào)屬性、技術(shù)要求及換版屬性。
圖 3:(智能圖框編輯器各工作界面)
通過窗體的啟動(dòng)等控件來提取當(dāng)前SolidEdge工程圖所涉及的零部件信息,然后根據(jù)需要來對(duì)各個(gè)圖框?qū)傩赃M(jìn)行賦值,之后通過控件"確定"來實(shí)現(xiàn)對(duì)當(dāng)前工程圖圖框中相關(guān)屬性值的修改和增加,最后編寫相關(guān)的程序代碼。對(duì)于智能圖框?qū)傩跃庉嬈?其核心代碼是有關(guān)當(dāng)前工程圖的屬性提取和修改、主視圖比例的自動(dòng)提取以及技術(shù)要求的輸入。
2.2 程序代碼及實(shí)現(xiàn)技術(shù)
程序代碼是針對(duì)用戶界面各個(gè)控件的一種語言說明。在智能圖框?qū)傩跃庉嬈髦?最主要的技術(shù)成份是窗體啟動(dòng)和控件"確定"的代碼。
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
此段程序代碼主要作用是對(duì)將要用到的變量進(jìn)行聲明。
2.2.2 窗口啟動(dòng)時(shí)的代碼
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("當(dāng)前沒有活動(dòng)的文件")
End
End If
Me.Height = 423
Me.Width = 362
On Error GoTo 0
初始數(shù)據(jù)載入
設(shè)計(jì)者.Items.Add("設(shè)計(jì)者A")
設(shè)計(jì)者.Items.Add("設(shè)計(jì)者B ")
校對(duì)者;表面處理;說明;備注等ComboBox控件的數(shù)據(jù)載入方法和控件設(shè)計(jì)者的數(shù)據(jù)載入方式一樣,當(dāng)然也可以用數(shù)據(jù)庫的形式進(jìn)行加載。
Select Case objSolidEdge.ActiveEnvironment
Case "Detail" 圖紙環(huán)境
SSTab2.SelectedIndex = 0
讀入以前輸入的信息
On Error Resume Next
設(shè)計(jì)屬性
圖號(hào).Text = objvr.Properties.Item("Custom").Item("圖號(hào)").Value
零件名稱.Text = objvr.Properties.Item("Custom").Item("零件名稱").Value
設(shè)計(jì)者、設(shè)計(jì)日期以及代號(hào)屬性等數(shù)據(jù)的讀取依此類推
比例自動(dòng)
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()
此段程序代碼(已將一些通用代碼縮減,只保留了重要部分)主要作用是當(dāng)啟動(dòng)程序后:程序自動(dòng)檢測打開程序的工作環(huán)境,因?yàn)楸境绦蛑辉试S在SolidEdge工程圖環(huán)境下使用;程序中的各個(gè)ComboBox控件被賦值;程序自動(dòng)讀取當(dāng)前工程圖中的已有數(shù)據(jù)并加載到程序相對(duì)應(yīng)的控件上以便修改;程序自動(dòng)捕捉當(dāng)前工程圖的主視圖比例。
2.2.3 控件"確定"程序代碼
開始寫入屬性
Select Case objSolidEdge.ActiveEnvironment
Case "Detail" 圖紙環(huán)境
Call objvr.Properties.Item("Custom").Add("圖號(hào)", 圖號(hào).Text)
其它如零件名稱、設(shè)計(jì)日期等依此類推
中間變量
Call objvr.Properties.Item("Custom").Add("中間變量", 中間變量.Text)
End Select
技術(shù)要求
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 = "技術(shù)要求:" + 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ù)信息保存到當(dāng)前打開的工程圖中,其中比較有特色的是技術(shù)要求的輸入這段代碼,它完全控制了SolidEdge中TEXT這個(gè)參數(shù)。
2.3 對(duì)應(yīng)工程圖標(biāo)準(zhǔn)圖框的設(shè)置
在設(shè)計(jì)好的工程圖標(biāo)準(zhǔn)圖框中引入圖框?qū)傩詤?shù),具體方法是借用SolidEdge的"選擇屬性文本"這個(gè)工具進(jìn)行設(shè)置,如圖四所示。
圖 4:(屬性值的引入方式)
2.4 程序的應(yīng)用
智能圖框?qū)傩跃庉嬈髟诮?jīng)過長時(shí)間的應(yīng)用后,實(shí)際證明了不但可以通過該編輯器有效的將SolidEdge工程圖圖框中的屬性參數(shù)統(tǒng)一的管理起來,而且更重要的是它較大的提高了出圖人員的工作效率。
3、結(jié)論
當(dāng)今世界,分秒必爭的環(huán)境下,盡量縮短工程圖紙的處理時(shí)間也變的尤為的重要,因此,本文所提到的智能圖框?qū)傩跃庉嬈鞑坏钛a(bǔ)了這方面的空白,并且著實(shí)大大提高了工程處理的處理時(shí)間,具有很大的實(shí)際意識(shí)。
相關(guān)標(biāo)簽搜索:SolidEdge的智能圖框?qū)傩跃庉嬈?/a> AutoCAD培訓(xùn) AutoCAD培訓(xùn)課程 AutoCAD圖紙?jiān)O(shè)計(jì) AutoCAD在線視頻 AutoCAD技術(shù)學(xué)習(xí)教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn)