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)一管理。
   

SolidEdge的智能圖框?qū)傩跃庉嬈鱝utocad案例圖片1

    圖 1:(智能圖框編輯器)

SolidEdge的智能圖框?qū)傩跃庉嬈鱝utocad案例圖片2

        圖 2:(智能圖框編輯器工作啟動(dòng)狀態(tài))


    2.1 用戶操作窗口的設(shè)計(jì)
   
利用VB.NET的可視化技術(shù),可以創(chuàng)建用戶的操作界面。如圖三所示,操作界面上主要分為四部分:設(shè)計(jì)屬性、代號(hào)屬性、技術(shù)要求及換版屬性。
   

SolidEdge的智能圖框?qū)傩跃庉嬈鱝utocad案例圖片3

    圖 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è)置,如圖四所示。
   

SolidEdge的智能圖框?qū)傩跃庉嬈鱝utocad應(yīng)用技術(shù)圖片圖片4

    圖 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í)。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(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) 

編輯

在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com