Can't create entityset for a single node without assigning a property to it

Altair Forum User
Altair Forum User
Altair Employee
edited October 2020 in Community Q&A

Hello,

 

I was trying to create a node using,

 *createnode 0 0 0 0 0 0;

and then assigning it to an entityset using,

 *createmark nodes 1 [hm_latestentityid nodes]; *entitysetcreate 'SetName' nodes 1;

 

However when I go check the created set in the HyperMesh Model GUI under Sets, it doesn't show any nodes added to it.

 

I'd appreciate any help with this issue.

 

Thanks.

Answers

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited February 2017

    Your commands work without issue on my Hypermesh.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Your commands work without issue on my Hypermesh.

    These commands work for me as well when I type them into the hm tcl console. However, when I use these commands in a script, the set that is created does not have any nodes.

     

    However, if after creating the set and assigning the node to it, I assign a property to the node using tcl script, then the set seems to retain the node that I had assigned earlier.

     

    I'm not really sure why this is happening.

  • tinh
    tinh Altair Community Member
    edited February 2017

    These commands work for me as well when I type them into the hm tcl console. However, when I use these commands in a script, the set that is created does not have any nodes.

     

     

     

    That means your script has bug

     

     

    Actually, I don't know how to assign property to a node. If you have problem with your script then show it here. We will debug it easily

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

     

    That means your script has bug

     

     

    Actually, I don't know how to assign property to a node. If you have problem with your script then show it here. We will debug it easi

    @tinh : I think I realize where the issue is occuring in my script now. Having said that, I still don't have a fix for it.
     

    To put it very simply, this is my script,

     *createnode 0 0 0 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate OneNode nodes 1 *createnode 0 0 5 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate TwoNode nodes 1 *createnode 0 0 10 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate ThreeNode nodes 1 *nodecleartempmark

    When I run this script, the three sets, 'OneNode','TwoNode' and 'ThreeNode' do get created, however only the 'ThreeNode' entity set has a node in it. The other two sets have 0 nodes in them. I figured out that due to the use of *nodecleartempmark, only the most recently created node is left which is why ThreeNode has a node in it.

     

    However, my question is that how should I make all three sets retain their nodes and not just the last one.

     

     

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited February 2017

    The following code works for me:

     *createnode 0 0 0 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate OneNode nodes 1 *clearmark nodes 1  *createnode 0 0 5 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate TwoNode nodes 1 *clearmark nodes 1  *createnode 0 0 10 0 0 0 *createmark nodes 1 [hm_latestentityid nodes] *entitysetcreate ThreeNode nodes 1 *clearmark nodes 1 

     

    <?xml version="1.0" encoding="UTF-8"?>mode_set.png

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    @Q.Nguyen-Dai : Yes, my code does work without the *nodecleartempmark statement as well, however I do need to clear the temporary nodes at the end of my program, and if I do so, the added nodes disappear from two of the three entitysets. So my question is how can I make the entity sets retain the added nodes even after *nodecleartempmark is used ?

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited February 2017

    You can't. Because Hypermesh does not keep 'temporary' nodes after   '*nodecleartempmark' command.

    To keep these nodes, you can creat some lines based on these nodes, or some element?

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    You can't. Because Hypermesh does not keep 'temporary' nodes after   '*nodecleartempmark' command.

    To keep these nodes, you can creat some lines based on these nodes, or some element?

    @Q.Nguyen-Dai : The issue is that I only have to keep these nodes as RefNodes (kind of a point node to represent an entire mass) which is why I cannot create lines or elements with these Nodes as they serve as reference nodes. Hence, I was looking for a solution by which I could convert these temporary nodes to permanent ones so that they remain stored in the entity set.

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited March 2017

    No way to keep temporary nodes after '*nodecleartempmark' command. So don't use this command!

     

  • tinh
    tinh Altair Community Member
    edited March 2017

    @Q.Nguyen-Dai : The issue is that I only have to keep these nodes as RefNodes (kind of a point node to represent an entire mass) which is why I cannot create lines or elements with these Nodes as they serve as reference nodes. Hence, I was looking for a solution by which I could convert these temporary nodes to permanent ones so that they remain stored in the entity set.

     

     

    If you need a node represents lumped mass, create mass element on it

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited March 2017

     

     

    If you need a node represents lumped mass, create mass element on it

    @tinh : Thank you for that suggestion. It worked perfectly. Just as a side note, I was able to find another hypermesh command called *makepreservednodes which also does the same thing, converts a list of temporary nodes on a mark to preserved nodes which are retained even after using *nodecleartempmark.