CatBot 2.0

Throw away your XML files! Delete your CatOut nodes! CatBot 2.0 goes straight from Catia to Robot. You can get CatBot_2_0.zip here.

Changes in the new version are as follows:

  • You will still need the synchronizer node at the beginning, but instead of running CatOut at that time, you'll run CatBot. When the synchronizer finishes, you can go straight to the output file to mine for results.  
  • All model units in Catia, including the 'Bar Diameter' must be specified in millimeters. 'Wind Load,' and 'Live Load' must be specified in Newtons. These are standard SI units which Robot uses by default, and you should all get comfortable with working in metric anyway.
  • The organization of your catia model, in order to build a working robot model, is quite strict. You can use the Catia file included in the download as an example.  Objects not assigned to the correct geometric sets will not be carried to your structural model.
  • Because the user no longer has access to the setup of the Robot model, values for loading and bar properties are now carried in Catia parameters. So you can use modeFrontier to vary any of those during your optimization. All structural members are created as tubes with a wall thickness of 12.5mm by default. We might make this variable in the future as well. The parameters 'Bar Diameter,' 'Wind Load,' and 'Live Load' must remain in your model, and should have a value at all times in order to achieve meaningful results. If you bar diameter is varied to become less than the default thickness, Robot will more than likely throw a wobbly.
  • Plates can now be created in two ways, "slabs" and "panels". Slabs get loaded with live and dead loads, while panels get loaded only with wind. The slab is represented in Robot as a homogenous concrete slab with a thickness of 20cm. Panels are made from the same material  as slabs but have a thickness of .1cm, as we do not want significant additional loading from panels that are only meant to transfer wind loads to the structure. In order to avoid huge displacements in panel elements owing to their thinness,  all panels are now created as single finite element panels. Values for wind and live loads are now specified through parameters in Catia. All loads are applied normal to the panels at present. In the future, we will implement a wind vector for application of directional loads.
  • Point elements in the 'fixed' set will be created as pinned in Robot. Future versions may have support for different boundary conditions based on feed-back in the next couple of weeks.
  • Four load cases are created in the Robot model at run-time. 3 simple cases, Dead, Live, and Wind, and one combination representing DL + .75WL + .75LL. You should mine the combination for your results, as load combinations are the structural engineer's typical way of evaluating the compliance of a structure.
  • Results are no longer written to a .dat file. A typical robot results file is written to the directory that is specified in the command line. This results file has much more information than the .dat file and can be easily mined with modeFrontier. You will need to adapt your modeFrontier workflow to use this new .txt file instead of the .dat file.
  • The syntax has changed slightly for the launch. Before you used the '-u' flag to launch CatBot in update mode. You will now replace '-u' with '-mF' to symbolize that CatBot is now going to be launch in "modeFrontier" mode. By specifying '-s' as well you will save a sequentially numbered Robot file for later reference. So the syntax for the included model is :    CatBot Grid_Example -mf -s C:\AF_Tools\Workflows\WorkFlow_081019.
  • Make sure your polylines are closed and contain no more than 4 points. It is possible that polylines with more the 4 point could work, but I haven't tested it. If someone wants to try, be my guest.

Happy building!

Comments

Mode Frontier Syntax / What am I doing Wrong?

Hi Ian / Anyone,

 I have been trouble-shooting all day and I can't seem to figure out how to get the new Catbot 2.0 to work in modefrontier. It seems to be either brining up the catbot.bat file too soon, or too late depending on the sleep settings.    Either way it's not synchronizing like it did before and i get no robot file.

 I have tried dozens of variations from the modefrontier dos node interface. Here are a few things i've tried....

////////////

 Sleep 10
E:\AF_Tools\CatOut.exe Grid Example E:\af_tools
exit %ERRORLEVEL%

/////////

E:\AF_Tools\CatBot.exe

///////////////////

 

Grid_Example_Catbot.bat

////////////////

My First Logical Approach******************
Sleep 5
E:\AF_Tools\Catbot_2_0\Grid_Example_Catbot.bat
exit %ERRORLEVEL%

///////////////
Or.....******************
Sleep 5
E:\AF_Tools\Catbot_2_0\Catbot.exe
exit %ERRORLEVEL%

////////////////

E:\AF_Tools\Catbot_2_0\
Copy E:\AF_Tools\Catbot_2_0\Grid_Example.txt %APPL_PWD%\Grid_Example.txt
exit %ERRORLEVEL%

 

 

all of these and many more...   What am I doing wrong?

 Thanks,

Daniel

Daniel, There is no more

Daniel,

There is no more CatOut process at all. CatOut was doing the XML writing. The correct syntax for the CatBot node should now be formatted like this:

 

Catbot_Directory\CatBot.exe fileName -mf -s WorkingDirectory 

copy WorkingDirectory\OutputFile.txt %APPL_PWD%\OutputFile.txt

exit %ERRORLEVEL%

 

so a real version of this might look like...

 

E:\AF_Tools\CatBot.exe GridExample  -mf -s E:\AF_Tools

copy E:\AF_Tools\myWorkFlow\GridExample.txt %APPL_PWD%\GridExample.txt

exit %ERRORLEVEL% 

 

 

Ian Keough

Senior Technical Designer

Buro Happold Consulting Engineers 

CRAFT -Computation, Research, Analysis, and Fabrication Technology

New ModeFrontier Workflow

Here is a capture of the CATBOT2.0 ModeFrontier workflow.   

Workflow

Adam,

Can you show us what you typed in the DOS node?  I can't seem to get this to bring up the .bat file.

Parameter Type and Units

the 'Bar Diameter' must be specified in millimeters- which is a parameter of type Length.

the 'Wind Load' and 'Live Load' must be specified in Newtons- which seem to be parameters of type Force.

However, it also seems that in the sample file, the load and bar parameters are unitless, real numbers.

 

 

Yes. Real numbers.

Adam,

 

Sorry for the delayed reply. You're right to point out that the parameters in the test file are real numbers. It's because catia has those weird length parameters that I would have to read and subtract the "mm", in order to push them in to Robot. So use real numbers for your parameters.

 

 

 

Ian Keough

Senior Technical Designer

Buro Happold Consulting Engineers 

CRAFT -Computation, Research, Analysis, and Fabrication Technology

CATBOT crashing

I've gotten this new flow to work with the sample file which is really nice (the .txt file it creates contains 4,500 lines of structural data!)

When trying to substitute my own file with proper Geometrical Set nomenclature, CATBOT is crashing with this message.  Could this be due to the amount of geometry within the sets (300 points, 300 lines, 50 plates)?

 

Crashing...

Adam, 

That kind of error happens when one of the lists doesn't have anything in it, or it has weird stuff in it. Does one of your analytical sets have a mix of element types. It shouldn't matter if one of the analytical sets doesn't have anything in it, but maybe. Although it sounds like you've got plenty of stuff. Size shouldn't be a real problem, the example file had a couple thousand members in it.

We'll take a look and debug tomorrow. 

 

Ian Keough

Senior Technical Designer

Buro Happold Consulting Engineers 

CRAFT -Computation, Research, Analysis, and Fabrication Technology

Possible methods to copy PTS and Lines into Analytical Set

I have two approaches I wanted to run by you. This is probably what you were suggesting, but I'm not sure i know how to do any of the things you were suggesting.

1   Run a macro that searches each geometrical set, and copies points, and lines to the proper Analytical set.

Here is what I have done with a recorded macro.  I just haven't been able to figure out a more general naming convention. it breaks when i delete any of the lines.

ex....

 Language="VBSCRIPT"

Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection

selection1.Clear

Set part1 = partDocument1.Part

Set hybridBodies1 = part1.HybridBodies

Set hybridBody1 = hybridBodies1.Item("Copies")

Set hybridBodies2 = hybridBody1.HybridBodies

Set hybridBody2 = hybridBodies2.Item("Block1")

Set hybridBodies3 = hybridBody2.HybridBodies

Set hybridBody3 = hybridBodies3.Item("LINES")

Set hybridShapes1 = hybridBody3.HybridShapes

'I need help with this part. How do I get all the lines in the set without
'calling them by their specific name?

Set hybridShapeLinePtPt1 = hybridShapes1.Item("Line.2810")

selection1.Add hybridShapeLinePtPt1

Set hybridShapeLinePtPt2 = hybridShapes1.Item("Line.2811")

selection1.Add hybridShapeLinePtPt2

Set hybridShapeLinePtPt3 = hybridShapes1.Item("Line.2812")

selection1.Add hybridShapeLinePtPt3

Set hybridShapeLinePtPt4 = hybridShapes1.Item("Line.2813")

selection1.Add hybridShapeLinePtPt4

Set hybridShapeLinePtPt5 = hybridShapes1.Item("Line.3080")

selection1.Add hybridShapeLinePtPt5

Set hybridShapeLinePtPt6 = hybridShapes1.Item("Line.3081")

selection1.Add hybridShapeLinePtPt6

Set hybridShapeLinePtPt7 = hybridShapes1.Item("Line.3082")

selection1.Add hybridShapeLinePtPt7

Set hybridShapeLinePtPt8 = hybridShapes1.Item("Line.3084")

selection1.Add hybridShapeLinePtPt8

Set hybridShapeLinePtPt9 = hybridShapes1.Item("Line.3085")

selection1.Add hybridShapeLinePtPt9

Set hybridShapeLinePtPt10 = hybridShapes1.Item("Line.3086")

selection1.Add hybridShapeLinePtPt10

Set hybridShapeLinePtPt11 = hybridShapes1.Item("Line.3087")

'If i could find a generic naming convention for all contents
'in the set "LINES" I could replace that entire section above and do this for all my sets

selection1.Add hybridShapeLinePtPt11

selection1.Copy

Set partDocument1 = CATIA.ActiveDocument

Set selection2 = partDocument1.Selection

selection2.Clear

Set hybridBody4 = hybridBodies1.Item("Analytical Set")

Set hybridBodies4 = hybridBody4.HybridBodies

Set hybridBody5 = hybridBodies4.Item("Lines")

selection2.Add hybridBody5

selection2.Paste

End Sub

OR...... approach 2 and maybe even better

taking a cue from this example: http://www.gtwiki.org/mwiki/index.php?title=Reactions_in_Powercopies

the part of the reaction code at the very end which writes the new points to the specified geometrical set "PTS"  I was able to get it to redirect to a custom named geometrical set.

This is very promising but I don't have any control beyond that as of yet.  I'm thinking that I could repeat that code once for points, and one for lines.   This might save time if it's embedded in each powercopy so that the global macro doesn't have to be too crazy. It might save time both in actual processing time and maybe even the file setup.

Any Ideas?

txt File?

Hi Ian,

I can't seem to find this .txt file that you mentioned in the blog.  I am able to write the robot file successfully, and I have tried calculating the results, but the only file I see written to the af-tools directory is the .bak file.   Am I missing something?

Daniel

Got it

Nevermind. I just had to change the directory in the CatBot file to the E drive instead of the C

Reactions, Powercopies, and Geometrical Sets.

I got the version you sent to work just fine.  Very cool and very fast. 

The trouble is that my entire deletion approach is based on reactions nested in Geometrical Sets.   I've tested nesting simple geometrical sets with points and lines within either the "Free Points", or "Lines" geometrical sets that you have provided, but it doesn't appear to be building anything. When I am not trying to nest it works fine, but that doesn't really allow me to control my geometry in any meaningful way aside from one global reaction that affects every point and every line in the file.  Is there any way to get the software to search all nested sets?