Pourquoi l'attribution de repère à une propriété PSOLID ne se réalise pas en batch?
J'ai crée un code TCL qui crée des propriétés PSOLID en batch, je me suis aperçue que lorsque je crée les propriétés en batch elles n'ont pas de cardimage associé et en plus lorsque j'essaye de leur attribuer un repère ce la ne marche pas j'ai un message d'erreur comme qui le code s'arrête au moment de l'attribution des repères.
Est-ce lié au problème de cardimage non attribué ou est-ce un problème dans la commande que j'ai crée pour attribuer les repères?
Voici mon code:
set nbcouchesfluides [expr { $nbcoucheschaudes + $nbcouchesfroides } ]
set b 2
set c 0
set a 1
while { $a <= $nbcouchesfluides} {
*startnotehistorystate {Modified CORDM options of property}
*setvalue props id=$b STATUS=2 1000=3
*setvalue props id=$b STATUS=1 123={systs [lindex $reperes $c]}
*endnotehistorystate {Modified CORDM options of property}
incr b 2
incr c
incr a
}
Merci pour votre aide
Answers
-
this was replied in another topic, and probably it is lacking the right template solver for exporting correctly.
For example, if you are exporting a OptiStruct model, but using the generic HyperMesh profile in btach mode, then you will not have your properties exported.
0 -
You are not creating any marks in this code. In the other code you shared you clear the mark as soon as you set it so it is not really doing anything. So I am not sure of the issue. You may need to use hm_getmark if you are trying to get the list of entities unless you are using a command that requires a mark as an input but I don't see one of those in your code.
p.s. you don't need *startnotehistorystate and *endnotehistorystate in your code that is just for the undo redo functionality in the gui and generally won't work in your code.
0 -
Bonjour Chloé,
en premier lieu, j'aurais tendance à vous recommander de rendre les commandes *setvalue plus facilement lisibles en remplaçant les codes des attributs par leur nom. Pour effectuer cette opération je vous invite à consulter la 3eme vide d'une playlist que nous avons démarré récemment sur notre chaine Youtube :
https://www.youtube.com/watch?v=-QkM8hI1vYk&list=PLGNemB0NFb0AXOgj3rPq929yZwXHQK63-
Par ailleurs je suis surpris de voir STATUS=2, de manière générale le STATUS devrait être à 1 dans ces commandes
Enfin, je ne vois pas dans votre ode le contenu de la variables reperes. S'agit-il bien 'une liste? Comment l'avez-vous obtenue?
Cordialement,
Michael
0 -
J'ai testé en modifiant le code comme ci dessous en suivant vos conseils, celà ne marche toujours pas
set nbcouchesfluides [expr { $nbcoucheschaudes + $nbcouchesfroides } ]
set b 2
set c 0
set a 1
while { $a <= $nbcouchesfluides} {
*createmark properties 1 "by property id" $b
*setvalue props id=$b STATUS=1 1000=3
*setvalue props id=$b STATUS=1 123={systs [lindex $reperes $c]}
*clearmark properties 1
incr b 2
incr c
incr a
}Pour le contenu de la variable repères il s'agit bien d'une liste que j'ai définie de cette façon:
set reperes "101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101"
A noter que ce code fonctionne très bien lorsque je le lance à la main dans hypermesh et qu'il ne fonctionne pas dès je veux le lancer en mode batch
Auriez-vous une autre solution?
0 -
Chloé paolpi said:
J'ai testé en modifiant le code comme ci dessous en suivant vos conseils, celà ne marche toujours pas
set nbcouchesfluides [expr { $nbcoucheschaudes + $nbcouchesfroides } ]
set b 2
set c 0
set a 1
while { $a <= $nbcouchesfluides} {
*createmark properties 1 "by property id" $b
*setvalue props id=$b STATUS=1 1000=3
*setvalue props id=$b STATUS=1 123={systs [lindex $reperes $c]}
*clearmark properties 1
incr b 2
incr c
incr a
}Pour le contenu de la variable repères il s'agit bien d'une liste que j'ai définie de cette façon:
set reperes "101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101 102 103 104 101"
A noter que ce code fonctionne très bien lorsque je le lance à la main dans hypermesh et qu'il ne fonctionne pas dès je veux le lancer en mode batch
Auriez-vous une autre solution?
Is the template set correctly in batch mode? Do you get any errors? What exactly is going wrong? Do you have any GUI commands in your code?
0 -
Comment puis-je vérifier que le template est correctement définit en mode batch?
j'ai cette erreur:
Pour lancer en mode batch j'utilise ce code:
set HST_ALTAIR_HOME="C:\Program Files\Altair\2019"
REM %HST_ALTAIR_HOME%\hm\bin\win64\hmopengl.exe -h -nouserprofiledialog -continue -s200*200 -tcl CODE_TCL_CORE_3D_VF.tcll
%HST_ALTAIR_HOME%\hw\bin\win64\hw.exe -b -clientconfig hwfepre.dat -tcl CODE_TCL_CORE_3D_VF.tcl0 -
Chloé paolpi said:
Comment puis-je vérifier que le template est correctement définit en mode batch?
j'ai cette erreur:
Pour lancer en mode batch j'utilise ce code:
set HST_ALTAIR_HOME="C:\Program Files\Altair\2019"
REM %HST_ALTAIR_HOME%\hm\bin\win64\hmopengl.exe -h -nouserprofiledialog -continue -s200*200 -tcl CODE_TCL_CORE_3D_VF.tcll
%HST_ALTAIR_HOME%\hw\bin\win64\hw.exe -b -clientconfig hwfepre.dat -tcl CODE_TCL_CORE_3D_VF.tclI think you need to add a -profile option to the batch command.
1