2015-08-19 1 views
0

Je veux changer un croquis Support d'un plan à l'autre dans la macro. J'ai essayé avec StartCommand mais cela n'a pas fonctionné. Comment cela peut-il être fait sans l'entrée de l'utilisateur?Comment changer le support d'esquisse dans CATIA en utilisant vba?

J'ai essayé le code suivant mais cela n'a pas fonctionné.

CATIA.StartCommand "Change Sketch Support" 
selection1.Add sketch3 
SendKeys "{ENTER}", True 
selection1.Add Plane_a 
SendKeys "{ENTER}", True 
part1.Update 

Répondre

0

Vous essayez par winapi et ce n'est pas le moyen le plus simple. Vous avez deux alternatives:

Ou vous utilisez la copie et la méthode de pâte

Dim osel As Selection = CATIA.ActiveDocument.Selection 
osel.Clear() 
osel.Add(sketch3) 
osel.Copy() 
osel.Clear() 
osel.Add(Plane_a) 
osel.Paste() 
Dim RsltSketch As Sketch = osel.Item2(1).Value 
osel.Clear() 
'You can delete the first one if you want 
osel.Add(sketch3) 
osel.Delete() 

Ou vous définissez les vecteurs précis

Dim arrayOfVariantOfDouble(8) 
arrayOfVariantOfDouble(0) = OriginPointX 
arrayOfVariantOfDouble(1) = OriginPointY 
arrayOfVariantOfDouble(2) = OriginPointZ 
arrayOfVariantOfDouble(3) = DirectionHorizontalX 
arrayOfVariantOfDouble(4) = DirectionHorizontalY 
arrayOfVariantOfDouble(5) = DirectionHorizontalZ 
arrayOfVariantOfDouble(6) = DirectionVerticalX 
arrayOfVariantOfDouble(7) = DirectionVerticalY 
arrayOfVariantOfDouble(8) = DirectionVerticalZ 
sketch3.SetAbsoluteAxisData(arrayOfVariantOfDouble) 
-1

Ce lien indique pour sélectionner l'esquisse, puis sélectionnez le plan et l'exécution StartCommand "Change Sketch Support"

'Get the part object (Assume the part is open in it’s own window) 
Set objPart = CATIA.ActiveDocument.Part 

'Get the first sketch in the first geometrical set 
Set objSketch = objPart.HybridBodies.Item(1).HybridSketches.Item(1) 

'Get the plane called Plane.1 in the first geometrical set 
Set objPlane = objPart.HybridBodies.Item(1).HybridShapes.Item(“Plane.1”) 

'Select the sketch first then the new support plane 
Set objSel = CATIA.ActiveDocument.Selection 
objSel.Clear 
objSel.Add objSketch 
objSel.Add objPlane 

'Call the Change Sketch Support command 
CATIA.StartCommand “Change Sketch Support” 

https://v5vb.wordpress.com/2010/01/20/startcommand/