java excel 创建按钮_通过单击Excel按钮在Catia中设计零件
我已經在用宏編輯器構建的Catia V5中編寫了一些宏,但我無法弄清楚如何從Excel訪問Catia命令 .
我想知道如何通過僅在excel文件圓柱體的半徑和長度中創建一個簡單的直圓柱體 .
我想在Catia中輸入不同的壓力容器,在Excel中輸入它們的直徑和高度,然后點擊那張excel表中的按鈕后,容器應該出現在Catia中 . 如果我已經需要在Catia中打開一個空的部分,我沒有問題,但最好只是讓Catia打開而不加載任何東西 .
如果我有一個開始,看看如何從Excel訪問Catia方法,我想我可以找出完成容器所需的其余方法,如頸部,帽子等 .
謝謝 .
編輯:我設法測試了一些東西,我遇到了一個問題,我不知道如何在Excel vba中設置約束 . 我將代碼從Catia vb移動到Visual Express并設法使其在那里工作但是在excel中我沒有找到關于如何使用驅動維度的鏈接 .
這是我的代碼:
Sub Main()
Dim CATIA As Object
Set CATIA = GetObject(, "CATIA.Application")
Set openDocument = CATIA.ActiveDocument
Set currentPart = openDocument.Part
Set currentHybridBodies = currentPart.HybridBodies
Set currentHybridBody = currentHybridBodies.Add()
Set referenceHybridBody = currentPart.CreateReferenceFromObject(currentHybridBody)
currentPart.HybridShapeFactory.ChangeFeatureName referenceHybridBody, "GeometricalSet"
Set partOriginElements = currentPart.OriginElements
Set plnYZ = currentPart.OriginElements.PlaneYZ
Set currentGeometricalSet = currentPart.HybridShapeFactory
Dim currentOffset As Integer
Dim circleDiameter As Integer
Dim cylinderLength As Integer
currentOffset = 0
circleDiameter = Range("B2").Value
cylinderLength = Range("B3").Value
Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)
currentPart.Update
currentOffset = currentOffset + cylinderLength
circleDiameter = Range("B5").Value
cylinderLength = Range("B6").Value
Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)
openDocument.Part.Update
currentOffset = currentOffset + cylinderLength
circleDiameter = Range("B8").Value
cylinderLength = Range("B9").Value
Call CreateCylinder(0, 0, circleDiameter, cylinderLength, currentOffset)
currentPart.Update
currentOffset = currentOffset + cylinderLength
CATIA.ActiveWindow.ActiveViewer.Reframe
End Sub
Sub CreateCylinder(iCenterX, iCenterY, iDiameter, iLength, iPlaneOffset)
Set CATIA = GetObject(, "CATIA.Application")
Set openDocument = CATIA.ActiveDocument
Set currentPart = openDocument.Part
Set plnYZ = currentPart.OriginElements.PlaneYZ
Set currentGeometricalSet = currentPart.HybridShapeFactory
Set planeOffset1 = currentGeometricalSet.AddNewPlaneOffset(plnYZ, iPlaneOffset, False)
Set currentHybridBody = currentPart.HybridBodies.Item("GeometricalSet")
currentHybridBody.AppendHybridShape (planeOffset1)
openDocument.Part.Update
Set currentBodies = currentPart.Bodies
Set currentBody = currentBodies.Add()
Set currentSketch = currentBody.Sketches.Add(planeOffset1)
Dim Factory2D As Object
Set Factory2D = currentSketch.OpenEdition
Set geometricElements1 = currentSketch.GeometricElements
Dim axis2D1 As Object
Set axis2D1 = geometricElements1.Item("AbsoluteAxis")
Dim line2D1 As Object
Set line2D1 = axis2D1.GetItem("HDirection")
Dim line2D2 As Object
Set line2D2 = axis2D1.GetItem("VDirection")
Set currentCircle = Factory2D.CreateClosedCircle(iCenterX, iCenterY, iDiameter / 2)
Dim point2D1 As Object
Set point2D1 = axis2D1.GetItem("Origin")
Dim constraints1 As Object
Set constraints1 = currentSketch.Constraints
Dim reference2 As Object
Set reference2 = currentPart.CreateReferenceFromObject(currentCircle)
Dim constraint1 As Object
Set constraint1 = constraints1.AddMonoEltCst(catCstTypeRadius, reference2)
Dim catCstModeDrivingDimensions As Object
'Set constraint1.Mode = catCstModeDrivingDimensions 'Here I get the error
Dim iRadius As Double
iRadius = iDiameter / 2
currentCircle.CenterPoint = point2D1
currentSketch.CloseEdition
Dim newPad As Object
Set newPad = currentPart.ShapeFactory.AddNewPad(currentSketch, iLength)
End Sub
在該注釋行上我得到錯誤438:對象不支持此屬性或方法 .
代碼在沒有該行的情況下工作,但幾何元素不受約束,相反它們看起來是固定的,我不希望這樣 .
該代碼在Visual Express中工作正常,并將所有約束放在應有的位置 .
任何人都可以告訴我如何將Catia命令鏈接到excel vb .
這是來自v5自動化文檔:
枚舉CatConstraintMode {catCstModeDrivingDimension,catCstModeDrivenDimension}
此外,對我的代碼的任何反饋表示贊賞 .
謝謝 .
編輯:我似乎可以導入的唯一引用是:references
如果我選擇其他人,則會收到錯誤:加載DLL時出錯 . Catia安裝在服務器上但是我可以使用Browse指向它...我仍然不確定在那里選擇什么,因為有很多文件 .
總結
以上是生活随笔為你收集整理的java excel 创建按钮_通过单击Excel按钮在Catia中设计零件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytest测试实战pdf_Pytest
- 下一篇: python中可通过()实现代码的复用_