Pourquoi l'attribution de repère à une propriété PSOLID ne se réalise pas en batch?

Chloé paolpi
Chloé paolpi Altair Community Member
edited December 2022 in Community Q&A

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

  • Adriano A. Koga
    Adriano A. Koga
    Altair Employee
    edited December 2022

    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.

     

  • Ben Buchanan
    Ben Buchanan
    Altair Employee
    edited December 2022

    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.

  • Michael Herve_21439
    Michael Herve_21439
    Altair Employee
    edited December 2022

    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&amp;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

     

     

  • Chloé paolpi
    Chloé paolpi Altair Community Member
    edited December 2022

    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?

  • Ben Buchanan
    Ben Buchanan
    Altair Employee
    edited December 2022

    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?

  • Chloé paolpi
    Chloé paolpi Altair Community Member
    edited December 2022

    Comment puis-je vérifier que le template est correctement définit en mode batch?

    j'ai cette erreur:

    image

    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.tcl

  • Ben Buchanan
    Ben Buchanan
    Altair Employee
    edited December 2022

    Comment puis-je vérifier que le template est correctement définit en mode batch?

    j'ai cette erreur:

    image

    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.tcl

    I think you need to add a -profile option to the batch command.