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è)務量的增大,出圖及圖紙更新的速度明顯的走快,對圖框中一些內容的操作也變得極其的繁瑣。因此,對圖框內容能夠實現(xiàn)統(tǒng)一的管理并有一定的智能化,在保證工程師工作質量的同時提高其工作的速度,具有顯著的實際應用意義,因此本人就開發(fā)了這個基于SolidEdge 的智能圖框屬性編輯器。
   
    2、智能圖框屬性編輯器的開發(fā)
   
智能圖框屬性編輯器,如圖一所示,是將圖框中所涉及到的需要修改的內容全部歸納在一起??梢栽谧詣幼R別工程圖中所引用零件的零件名稱、圖號及比例等(如圖二所示)的同時;接受用戶的輸入,并將這些數(shù)據(jù)的內容全部反應在相對應的圖框中;也可以在進行圖紙的更新時,自動識別原先圖框中的屬性值,以便進行數(shù)據(jù)的更新。該編輯器的設計理念是用VB.NET來提取、修改和增加SolidEdge中的參數(shù)信息,并通過SolidEdge中的宏這個程序接口功能將開發(fā)的程序與SolidEdge完美結合,從而實現(xiàn)了圖框屬性的統(tǒng)一管理。
   

SolidEdge的智能圖框屬性編輯器autocad案例圖片1

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

SolidEdge的智能圖框屬性編輯器autocad案例圖片2

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


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

SolidEdge的智能圖框屬性編輯器autocad案例圖片3

    圖 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的"選擇屬性文本"這個工具進行設置,如圖四所示。
   

SolidEdge的智能圖框屬性編輯器autocad應用技術圖片圖片4

    圖 4:(屬性值的引入方式)

    2.4 程序的應用
   
智能圖框屬性編輯器在經(jīng)過長時間的應用后,實際證明了不但可以通過該編輯器有效的將SolidEdge工程圖圖框中的屬性參數(shù)統(tǒng)一的管理起來,而且更重要的是它較大的提高了出圖人員的工作效率。 
   
3、結論
   
當今世界,分秒必爭的環(huán)境下,盡量縮短工程圖紙的處理時間也變的尤為的重要,因此,本文所提到的智能圖框屬性編輯器不但填補了這方面的空白,并且著實大大提高了工程處理的處理時間,具有很大的實際意識。


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

相關標簽搜索:SolidEdge的智能圖框屬性編輯器 AutoCAD培訓 AutoCAD培訓課程 AutoCAD圖紙設計 AutoCAD在線視頻 AutoCAD技術學習教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

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