作者shaffer (planet)
看板Cad_Cae
标题Re: [问题] 想请问一下CATIA的Design Table的问题
时间Wed Jun 2 15:05:50 2010
如果只是要即时控制参数的话
会建议在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