[Smart properties] Existe t_il une limite du fichier XML?

Bonjour,

Je suis actuellement en train de paramétrer les Smart Properties de nos prt.

Afin de pouvoir piloter plusieurs menus déroulants en fonction de la matière qui a été appliqué à la pièce, j'ai recours à la fonction " Groupe Conditionnel" (voir capture jointe).

Sauf que je n'arrive plus à ajouter de groupes conditionnels supplémentaires sans entrainer de plantage. C'est à dire que si j'en ajoute un ( j'ai fait plusieurs différents pour éviter les erreurs de mauvais paramétrage) et que j'applique les modifs, Smart Properties plante. Impossible de relancer le Smart Properties, même après un redémarrage pc. La seule façon de pouvoir relancer le Smart est de remettre le fichier Xml des part tel qu'il était avant la modif.

Ma question, existe til une limite de quantité de groupe conditionnels ? Ou peut etre une limite de poids du fichier Xml ?

Ou peut être s'agit il complètement d'autre chose ...

 


capture.png

Pour connaître la limite de smartproperties, les plus au courrant sont les dévellopeur . Pour cela tu devrait faire une demande au support.

C'est possible qu'il y a une limite en quantité et peut être il pourront t'aiguiller vers une autre méthode que faire plein de groupe conditionnel.

Que veux tu faire ensuite dans chaque groupe pour chaque type de matière?

Comme disait Coluche demande moi de quoi tu as besoin je te dirait comment t'en passer!

2 « J'aime »

Aujourd’hui, nous avons relié la propriété "matière dans Smart Properties à la matière qui a été appliquée sur la pièce via notre propre bibliothèque de matériaux. Cela nous permet d’éviter d’avoir un 3D non conforme en terme de masse vis-à-vis de ce qu’li y aurait sur le plan.

Actuellement, nous avons defini 3 propriétés dans Smart (Traitement, Finition, et Protection). Chacune est liée à son propre menu déroulant piloté par un fichier texte. Chacun de ces fichier textes rassemblant toutes les possibilités de traitement ( par ex) que nous avons en interne, cela créé un menu déroulant très long et peu digeste. Et surtout pas forcément cohérant, car un traitement donné ne peut pas être réalisé sur n’importe quelle matière.

 

C’est pour cela que je tente de passer par des groupes conditionnels. Si ma matière est 3.3206, alors ma propriété traitement sera nécessairement rempli par Aucun, ma ligne Finition fait nécessairement appel à un fichier texte dédié, et la liste de protection disponible à un fichier texte particulier pour cette matière.

Et ainsi de suite…

Et j’ai même un groupe qui, si la matière ne rempli aucune des autres conditions, alors cela rempli automatiquement mes 3 propriétés d’une certaine valeur.

 

Bref, certaines matières ayant des choix de propriétés identiques, j’ai pu diminuer le nombre de groupe conditionnel, mais il m’en manque encore beaucoup.

Est-ce qu'il y a des imbrications de conditions ?

Pour le moment non. Je n'ai utilisé qu'une condition pour chaque groupe conditionnel.

 

 

Pourquoi ne pas imbriqué les condition si la matière est inox 304 alors $traitement=T1 $Finition=F1, si la matierer est s235 alors $traitement=T2 $Finition=F2

cela ferai une seule condition même si assez compliqué à réalisé.

Pour rappel voici le texte de l'aide concernant les conditions (pas les groupes conditionnels) il est bien indiqué pas de limites:

 

Vous avez également la possibilité d'imbriquer plusieurs conditions à la suite les unes des autres. Il n'y a pas de limite !

 

IFF($Matiere=Acier|IFF($Matiere=Acier allié|$TypeAcier|$Autre))

La syntaxe ci-dessus n'est pas correcte car le IFF doit toujours se situer dans la valeur SINON.

 

La bonne syntaxe est :

IFF($Matiere=Acier|$SiAcier|IFF($Matiere=Acier allié|$TypeAcier|$Autre))

- Si la propriété "Matiere" est égale à "Acier" alors la propriété "Conditionnel_matiere_1" récupère la valeur de la propriété "SiAcier".

Sinon

- Si la propriété "Matiere" est égale à "Acier allié" alors la propriété "Conditionnel_matiere_1" récupère la valeur de la propriété "TypeAcier".

Sinon

- La propriété "Conditionnel_matiere_1" Récupère la valeur de la propriété "Autre".

Sinon autre solution mais compliqué à mon gout faire un fichier xml par matière avec les traitements possible.

"Pourquoi ne pas imbriqué les condition si la matière est inox 304 alors $traitement=T1 $Finition=F1, si la matière est s235 alors $traitement=T2 $Finition=F2"

Tout simplement parce que ce n'est pas si simple. Ce que l'on cherche, c'est :

si matière est du 304, alors je dois choisir entre le traitement T1 ou T2 ou T3. Et si la matière est du 316, alors je dois chosir le traitement T2, T4 ou T5. Idem pour les autres rubriques finition, etc.

C'est pour celà que je passe pour le groupe condionnel qui me fait apparaitre (ou non) des menus déroulants précis.

Pour la solution d'un fichier xml par matière, pourquoi pas, mais je ne sais pas faire. Il y a t'il des tutuos ?

Bonjour,

Voici une solution :

https://www.my-cad.fr/utilitaire-solidworks-menus-dynamiques/

Cordialement.

Bonjour

J'ai déja bien pensé à cette solution, sauf que le début de mon menu dynamique serait la matière, qui est une variable pilotée. 

Mais si on parvenait à surmonter cette première marche, alors oui, tout le reste pourrait fonctionner de la sorte.

Par quoi est elle pilotée?

Par la matière attribuée au 3D :

Concrètement, toute nouvelle pièce à la propriété matière renseignée par "SW-Material@Nomdufichier.SLDPRT"

Pas certain que ça fonctionne du coup, mais avez vous essayé?

Dans le modèle prt, créer une propriété personalisée "Matière" et lui attribuer "SW-Material@blabla..."

Dans smartproperties, recréer un champ "Matière" en lui attribuant un fichier texte comme source ou une base de données.

Peut être qu'avec un peu de chance ça peut fonctionner.

Si dans Smart la matière reste la variable, alors Smart Properties ne reconnait pas le texte de la valeur obtenue. J'ai déjà testé.

Et nous devons absolument garder la matière du 3D liée à la matière Smart Properties.

Réponse du support : Oui il existe bien une limite. Le logiciel SolidWorks impose qu'il n'y a ai pas plus de 125 opérations dans le Smart Properties.

1 « J'aime »