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?