2016-11-16 152 views
0

我在VBA中有一個CATIA宏,它通過座標(從數組中)繪製點。 它適用於我的電腦(Catia V5-R2014和我的neigbours - 兩個版本V5-R2014和R21)。 但它不適用於不同城市的大學(他們的版本爲R21)。 基本上,我的宏從文件讀取輸入數據,計算座標,將它們寫入out-file,然後繪製這些點。 除最後一個步驟之外的所有步驟均可在任一計算機/版本上運行。 但在最後一步「他們的」卡蒂亞只是不繪製任何東西,沒有任何錯誤。用於CATIA的VBA宏在一臺計算機上工作,並且在另一臺計算機上不工作

所以對於最後一步Subruotine是:

Sub PlotGeometry() 
' Nmlp - number of points 
Dim i As Integer 

Dim oPartDocument As Document 
Dim ohSPointCoord() As HybridShapePointCoord 
Dim ohSPoints As HybridShapePointCoord 
Dim bodies1 As Bodies 
Dim body1 As Body 

ReDim ohSPointCoord(0 To Nmlp) 

Set oPartDocument = CATIA.Documents.Add("Part") 
Set oPart = oPartDocument.Part 
Set oPartBody = oPart.MainBody 
Set oPlaneYZ = oPart.CreateReferenceFromGeometry(oPart.OriginElements.PlaneYZ) 
' -- Draw Points 
Dim ohSFactory As HybridShapeFactory 
Set ohSFactory = oPart.HybridShapeFactory 

For i = 0 To Nmlp 
    Set ohSPointCoord(i) = ohSFactory.AddNewPointCoord(XM(i), YM(i), ZM(i)) 
    oPartBody.InsertHybridShape ohSPointCoord(i) 
Next i 

oPart.Update 

End Sub 

什麼可以嗎?

回答

1

也許在您的網站上啓用了混合設計,而在其他網站上則沒有。

啓用混合設計後,您可以將點添加到實體。不是這樣的,如果它沒有啓用,你會從你的代碼沒有錯誤。

該設置位於工具 - >選項 - >基礎設施 - >零件基礎結構 - >零件文檔選項卡 - >在零件體和零件內啓用混合設計。

由於無法解釋的原因,啓用混合設計是默認設置。不過,我不建議使用它。

如果你只是想讓你的代碼在兩個地方都可以工作,那麼使用幾何集來聚合你的點而不是主體。

Dim pointsBody as HybridBody 
Set pointsBody = oPart.HybridBodies.Add 
pointsBody.Name = "Points_Body" 

... 

For i = 0 To Nmlp 
    Set ohSPointCoord(i) = ohSFactory.AddNewPointCoord(XM(i), YM(i), ZM(i)) 
    pointsBody.AppendHybridShape ohSPointCoord(i) 
Next i 
+0

這是正確的。其他辦公室的一位同事表示。我已經重寫了宏,它的工作原理 – user3656916

0

只是一個隨機猜測:

進入VBE>工具>參考

和兩臺計算機的值進行比較。它們應該是相同的。 比較這些複選框:

enter image description here

如果它們是不同的,請務必使它們等同於作品的PC。

相關問題