Re: [問題] 想請問一下CATIA的Design Table的問題
如果只是要即時控制參數的話
會建議在CATIA內先用product,建一個內含欲操控參數的part(skeleton)
然後將那些參數以連結方式複製到其他part
程式部份只要抓到skeleton後更改內部參數
最後再update即可
做了一個簡單的範例檔來控制參數
http://shaffer.myweb.hinet.net/ChangeParameters.zip
程式原始碼: (VB.Net)
Imports KnowledgewareTypeLib
Public Class frmChangeParameters
Private Gparameters As Parameters
Private product1 As Object
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim objCATIA As New Object
Dim productdocument1 As Object
Dim products1 As Object
Try '取得CATIA物件
objCATIA = GetObject(, "CATIA.Application")
Catch ex As Exception
MessageBox.Show("無法取得CATIA")
Close()
Exit Sub
End Try
Try
productdocument1 = objCATIA.ActiveDocument
product1 = productdocument1.Product
products1 = product1.Products
Gparameters = products1.GetItem("Skeleton").parameters
lblFirst.Text = "Length"
txtFirst.Text =
Gparameters.GetItem(lblFirst.Text).ValueAsString.Replace("mm", "")
lblSecond.Text = "Width"
txtSecond.Text =
Gparameters.GetItem(lblSecond.Text).ValueAsString.Replace("mm", "")
lblThird.Text = "Height"
txtThird.Text =
Gparameters.GetItem(lblThird.Text).ValueAsString.Replace("mm", "")
Catch ex As Exception
MessageBox.Show("Module Error")
Exit Sub
End Try
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSave.Click
Dim LdblLength As Double = Val(txtFirst.Text)
Dim LdblWidth As Double = Val(txtSecond.Text)
Dim LdblHeight As Double = Val(txtThird.Text)
Gparameters.GetItem(lblFirst.Text).ValuateFromString(LdblLength & "mm")
Gparameters.GetItem(lblSecond.Text).ValuateFromString(LdblWidth & "mm")
Gparameters.GetItem(lblThird.Text).ValuateFromString(LdblHeight & "mm")
product1.Update()
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnExit.Click
Close()
End Sub
End Class
這只是簡單的範例,可視需求有更多的應用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.159.139
討論串 (同標題文章)
Cad_Cae 近期熱門文章
PTT數位生活區 即時熱門文章
13
34