Protéger l'arborescence d'une pièce

Bonjour,

est il possible de protéger l'arborescence d'une pièce sans bloquer la mise à jour des fonctions?

Par exemple, utiliser la barre de blocage mais permettre les mises à jours.

Merci d'avance pour vos réponses

Cordialement,

bonne journée.

Alex

Pouvroir modifier les valeur mais pas les fonctions ? 

1 « J'aime »

Bonjour MaD,

en fait j'ai un menu de propriétés personnalisées pour modifier les valeurs, les valeurs et la reconstruction se mettent à jour en enregistrant la pièce car il y'a aussi une famille de pièce associé.

Je voudrais simplement verrouiller l'arborescence et que lorsque l'on enregistre la pièce, que celle-ci se mette à jour et son arborescence avec. 

à priori suivant ce lien http://help.solidworks.com/2016/French/SolidWorks/sldworks/c_Changes_Affecting_Frozen_Features.htm

 

tu pourrais mettre a jour meme avec une barre de blocage mais je trouve risqué car si l'utilisateur ne met pas ajour avant enregistrement sa restera tel quel

2 « J'aime »

MaD, dans ton lien il est bien mentionné que l'on peut mettre à jour des fonctions bloqués, mais il n'ait pas précisé comment le faire, ou bien je lis comme un aveugle.

 

Edit: ok, j'ai compris il faut bien cliquer sur la barre de bloquage pour avoir la mise à jour des fonctions bloquées, mais ça ne m'arrange pas car les autres utilisateurs ne doivent pas savoir qu'il est possible d'enlever cette barre de bloquage. (et oui ils ne le savent pas, et croyez moi c'est mieux comme ça... ; ).

Sinon tu est le seul utilisateur à modifier ce fichier dans ce cas pourquoi tu ne le met pas en lecture seul ? 

1 « J'aime »

Non le fichier est modifiable par tout le monde, mais je voudrais qu'ils se limitent uniquement aux valeurs modifiables depuis le volet des propriétés personnalisées.

Bonjour je ne sais pas si cela vas aider :

Sous CATIA je mets a disposition seulement le fichier Excel (variables utilisateurs)

Et le fichier CAO qui est un import avec lien du fichier piloté par la table.

De cette façon les utilisateurs voient seulement le résultat des modifications des (variables utilisateurs).

Le fichier import avec lien etant dépourvue d'historique.

 

1 « J'aime »

Dans ce cas je partirais sur une macro qui affiche un UserForm l'utilisateur renseigne les info au passage controle si met pas des valeur incoherante ^^ puis modification de la piece de preference sans qu'il voit que la barre de blocage bouge pour mettre a jour la piece :)

2 « J'aime »

Il y'a de l'idée, merci ; )  

J'avais pensé aussi à insérer une pièce dans une pièce  et de mettre à disposition le fichier Excel qui permet de paramétrer la pièce mère, mais j'ai pas encore essayé, et je crains que les mise à jour soient trops longues ou qu'elles ne se fassent pas. 

Pour les macros, j'ai décroché par faute de temps dispo, je ne me sens pas encore vraiment alèse dans ce domaine, mais je m'entraine sur des choses bien plus simple pour le moment.

 

Je m'absente pour 2 semaines, et pour éviter de laisser cette question sans réponse, je valide celle de MaD, théoriquement il répond correctement au sens de ma question.

Merci aux participants, bon weekend.

Bonne vacances ou déplacement :)

1 « J'aime »

C'est quoi tout ces gens qui partent en vacance... Aller les gars, la france à besoin de nous (ou pas...)

Ok, je sors ...

Bonnes vacances.

1 « J'aime »

Bonjour,

Comme l'a dit MaD, je partirais sur une macro qui affiche un UserForm permettant de faire :

- Déverrouillage de la barre de blocage (en automatique).

- Remplissage des valeurs voulues dans les propriétés personnalisées via des champs textes ou listes.

- Reconstruction (en automatique).

- Verrouillage de la barre de blocage (en automatique).

- Sauvegarde du fichier (via un bouton ou en automatique).

Les commandes API permettant de déverrouiller ou verrouiller la barre de blocage sont :

Dim swApp As Object

Dim Part As Object

Dim boolstatus As Boolean

Sub main()

    Set swApp = Application.SldWorks

    Set Part = swApp.ActiveDoc

    boolstatus = Part.FeatureManager.EditFreeze(swMoveFreezeBarTo_e.swMoveFreezeBarToTop, "", False)

    MsgBox "Déverrouillée"

    boolstatus = Part.FeatureManager.EditFreeze(swMoveFreezeBarTo_e.swMoveFreezeBarToEnd, "", False)

    MsgBox "Verrouillée"
   
End Sub

Cordialement,

2 « J'aime »