Je souhaite déplacer des cotations dans ma mise en plan. Etant autodidacte sur les macros de SolidWorks, j'utilise l'enregistrement de macro pour m'aiguiller cependant là je bute. En effet suite au déplacement d'une cote la macro enregistrée me retourne :
boolstatus = Part.Extension.SelectByID2("D1@Vue de mise en plan1", "DIMENSION",3.20196294133094E-02, 0.121152137881271, 0, False, 0, Nothing, 0)'Position de la cote au départ
boolstatus = Part.Extension.SelectByID2("D1@Vue de mise en plan1", "DIMENSION", 8.08807508164743E-02, 0.118580499912683, 0, False, 0, Nothing, 0)'Position de la cote une fois déplacé
J'en conclu donc que les nombres en gras définissent la position de la cote. Cependant quand j'exécute ces lignes de commande même si le nombre change la cote ne se déplace absolument pas. Je dois mal mi prendre. Pourriez-vous venir à mon aide ?
En fait l'instruction utilisée est SELECT : donc ça ne sert qu'à sélectionner la cote !
Pour déplacer celle-ci, il faut utiliser SETPOSITION : http://help.solidworks.com/2011/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAnnotation~SetPosition.html
Merci ".PL" pour votre réponse, je suis en train de chercher comment utiliser "SETPOSITION". J'avoue avoir un peu de mal mais je ne suis qu'au début de mes recherches.
Pour répondre sur l'utilité de bouger la position d'une cote dans une MEP, il s'agit en fait de positionner toujours au même endroit des cotes qui change de position en fonction des dimensions de la pièce tout en gardant le même nom. Plus précisément : J'ai une pièce ayant plusieurs fonctions actives ou non et des dimensions qui changent également. Le tout est configuré à partir d'un fichier Excel qui vient exécuter une macro qui place les bonnes dimensions de chaque cotation. Je n'utilise pas les familles de pièce. Une fois l'importation de ces dimensions et des fonctions actives ou non la pièce et reconstruite puis importée dans ma MEP. Les cotations sont importées également mais apparaissent aléatoirement (Même avec option "comme sur esquisse"). J'ai donc décidé de fixer leur position sur le plan. Car l'utilisateur lambda doit juste configurer le fichier Excel et avoir un plan imprimable sans avoir à repositionner des côtes.
Merci pour vos suggestions cependant j'ai déjà testé beaucoup des possibilités logiciels sur l'importation ou la mise en forme des cotations et aucunes ne permettent un résultat normé exploitable sans retouches en effet les cotations automatiques se chevauchent et n'apparaissent pas en respectant les règles du dessin industriel. Cela permet juste de dégrossir l'affichage mais pas de le rendre normé. De plus j'ai également des cotations angulaires qui elles sont les pires à importer en automatique en effet en fonction de l'angle la cote peut se retrouver à l'autre bout du plan ^^
Je suis toujours en train d'essayer d'utiliser "SetPosition" mais je galère dans les déclarations. Si quelqu'un a un exemple simple, qui reprendrait par exemple la sélection d'une cote au nom "N" et a une position "X,Y" pour la faire passer à la position "X',Y'" je suis preneur ^^
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.ActivateView("Vue de mise en plan1")