Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

BESO3D (Rhino version) Manual — Getting started 1 

BESO3D (Rhino version) Manual – Getting started

By Z.H. Zuo

Two sections are included in this manual:


1. An instruction of using BESO3D for Rhinoceros is shown step-by-step. An example
is demonstrated, showing a straightforward guide.
2. A brief description of cautions with BESO3D is shown.

Package of the software include:

1. A Rhino plug-in of BESO3D - “BESO3D.rhp”.

2. A BESO engine – “BESO.exe”.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 2 
 

STEP-BY-STEP INSTRUCTION OF USING BESO3D

In this section, what we want to do is to build up a cantilever model and then to optimize it with
BESO3D.

STEP One: Create a Prototype.


To illustrate these steps, a 3D cantilever shown in Figure 1 is used as an example. As length in Rhino
is defined by users, no unit is specified in Figure 1 or anywhere in the example.

Figure 1 Design domain of a 3D cantilever.

Furthermore, we assume that the user has a working folder C:\BESO\ where the user has full control,
i.e. file reading, writing and deleting. You can select the work folder later on using the plug-in.

• Install the Rhino plug-in for BESO3D


First you need to drag the BESO3D_for_Rhino Plug-in (Figure 2) into Rhino. You will see a new
label (Figure 3) on Rhino’s Menu Bar. Note that you can check updates for this plug-in from our
website. Once you get a new version you do not have to uninstall the older version, just drag the new
one into Rhino.

Figure 2 Rhino Plug-in Icon

Figure 3 BESO3D menu

• Build the prototype

Use the command “Box” to create a box in Rhino.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 3 
 

This is going to be the prototype of the cantilever. The dimension (20×20×40) is shown in Fig. 4.

Figure 4

• SetPath
Following the command in Fig. 5 or typing SetPath into the Rhino command line, a window for
selecting the work path will be activated as shown in Fig. 6 for selecting the folder to run the
optimization example. You can choose any path. Attention: The folder you select must have the
BESO Engine “BESO.exe”.

Figure 5 Figure 6

• GetSolid
Type GetSolid into Rhino command line or select the GetSolid from BESO3D Menu as shown in Fig.
7. The only thing we should do is to select the prototype by clicking on the existing cantilever object,
by successful selection the prototype will flash once.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 4 
 

Figure 7

• Define loading
Before we define a load on the prototype model, we have to set a “node” onto the model, which is just

a point, using the Point command in Rhino .

We set the point onto the location which has been shown in Figure 8. Note: the coordinate in the
model of this example is {40, 10, 10}.

Figure 8

Type AddLoad into Rhino command line or select the AddLoad from BESO3D Menu as shown in
Figure 9. Rhino will ask you to select the force point, which is the point we just deployed onto the
model. You can choose more points at one time if you want. Right-click your mouse or press Enter
key to confirm your selection.

Note: If you did not select the solid, Rhino will notice you to select the solid before you define the
load point.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 5 
 

Figure 9

Then a dialogue pops up where you can define the value from 3 directions (X, Y, and Z) as shown in
Fig. 10. In this example the value will be X=0, Y=0, Z=-100 respectively. After confirming the load
setting by clicking OK, the model will look like Fig. 11.

Figure 10

Figure 11

• Define the constraint


As we have mentioned in Fig. 1, one surface should be totally fixed. There are two types of
constraints in BESO, fixing node(s) or fixing surface(s). We will introduce these two constraint types
one by one in the following.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 6 
 

Fixing node(s)

We want to define four points on one end face to be fixed. We set four points onto the four corners as
figure 12 shows.

Figure 12

Type AddConstrain into Rhino command line or select the AddConstrain from BESO3D menu as
in Fig. 12. Rhino will ask you to select the Constrain Point, then we select the points that we just
deployed.

Figure 12

Click Enter to confirm your selections. A pop-up dialogue appears as Fig. 13 where you set the degree
of freedoms of the constrained points. In this example we will constrain these points in all directions.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 7 
 

Figure 13

Figure 14 shows the result of successfully fixing four corner points.

Figure 14

Fixing a surface (multiple nodes)

Now we deal with the constraint that complies with the cantilever in Fig. 1. You may wish to undo the
previous actions of fixing individual points before continue with this example. Now we are going to
fix a surface or certain area.

Figure 15

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 8 
 

Type FixSurface into Rhino command line or select the FixSurface from BESO3D menu as in Fig.
15.

Attention: Computer will ask you to draw a box based on 3 points; any part within the box will be
defined as the constrained. So we need to draw the box carefully.

In our model, we just want to have one surface fixed. So we draw a box which just has one side attach
to the prototype. After finishing the box, a dialogue will appear where we can choose the degrees of
freedoms of this area/surface as in Fig. 16.

Figure 16

We fix all directions (X, Y, and Z). The model will look like Fig. 17.

Figure 17

• Define properties and parameters


Type SetProperty into Rhino command line or select the SetProperty from BESO3D menu as in Fig.
18.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 9 
 

Figure 18

The dialogue in Fig. 19 appears for defining the material property of Young’s modulus, Poisson’s
ration, and density for the material used for this model. Unit stands for the size of the elements. The
smaller the unit is the more elements you will get. In another words, the more precise the final
solution will be.

Figure 19

After clicking OK to confirm the properties, a second dialogue as in Fig. 20 comes up, where you will
define the Parameters for BESO Engine, including

EvoVolRation (Evolutionary Volume Ratio): 0.02 (Default value of 2%)


Filter Radius (Controls the member sizes of final solution): (Default value is 3 times the unit)
ConvTolerance (Solution convergence tolerance): 0.001(Default value of 0.1%)
MaxIter (Max iteration number): 200
ObjVolFraction (Object volume fraction): 0.5 (Default value of 50%)

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 10 
 

Figure 20

• Define non-designable domain


This is an optional action and is not included in the current demonstrated example.

Sometimes one needs to have part of the structure unchanged during the optimization procedure, for
this purpose, the user can set a non-designable domain(s). In order to active this function, the user
needs to create an assisting object to include the non-designable domain. According to the shape of
the non-designable domain, the assisting object can be cube, sphere or any shape that matchs the need.
Then type SetNonDesign into Rhino command line or select the SetNonDesign from BESO3D menu
as in Fig. 21, and select the assisting object as prompted.

Figure 21

STEP Two: Run BESO3D


After having set the model and boundary conditions of loadings and constraints, we can start the
BESO optimization procedure.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 11 
 

Figure 22

Type Run_BESO into Rhino command line or select the Run_BESO from BESO3D menu as in Fig.
22. Before you start BESO3D, It is better to reconfirm the BESO engine is indeed in the work folder
you chose.

Acting the Run_BESO command will first perform meshing of the model, the procedure of which
can be seen in the Rhino command line. After meshing is finished, BESO engine will be called in a
separate command line window as in Figure 23, to perform the iterative procedure of BESO
optimization.

Figure 23

This procedure will take a while. Now, it is time to have a cup of tea and wait until the optimization is
finished. Note: Once the analysis is done and the Rhino does not respond, please click ESC.

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 12 
 

STEP Three: Read Results


There are two ways to read the optimization results into Rhino: reading the elements and reading the
skin. In the first way, all FE elements are read that forms the final design, in the second way, only the
surfaces (skins) of the final design are read, ignoring all FE element information.

After the optimization procedure is finished (which can be indicated in the command line window
shown in Figure 23), type ReadElements into Rhino command line or select the ReadElements from
BESO3D menu as in Figure 24 to for demonstrating the whole resulted finite element model.

Figure 24

The second way is actually recommended for the user to read the result, because by reading only the
skins, the model information to be read into Rhino is greatly reduced and much time will be saved.

In the file select dialogue in Figure 25, select the latest BMeshNNN file from your work path under
Work Path/Temp/BMeshNNN.txt which is the model file of the 44th iteration – the final design. For
this example we will choose C: /BESO/Temp/ BMesh044.txt. We will choose a new layer to be the
current layer. So it is convenient for us to see the result by switch on/off different layers.

Figure 25

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 13 
 

We could switch off the layer of the prototype and the result looks like Figure 26.

Figure 26

If you would like to reduce more material from the structure based on the obtained result, you do not
need to redo the whole procedure. You can change the parameters by opening “2.txt” in the BESO
running folder, change *ObjVolFraction<XXX> with XXX being the expected volume fraction, e.g.
0.3 for 30%, and type “BESO 1.txt 2.txt” in the command line window shown in Figure 23, the
optimization will continue. Here we redefine the ObjVolFraction value as 0.3 (setting a smaller
objective volume fraction) and run BESO3D again to get another solution as in Figure 27.

Figure 27

Now you can build up your own model and have fun with BESO3D!

Centre for Innovative Structures and Materials, RMIT University


 
BESO3D (Rhino version) Manual — Getting started 14 
 

CAUTIONS

1. Your Rhino version should be Rhino4.0 SR6.0 or later.

2. If the work path you choose is too deep, there will be a possibility of error report.

3. You cannot run two or more BESO3D from one work folder.

4. During and after the optimization procedure, the Rhino window might remain in a “non-
respond” status. You can press ESC to retrieve the control of Rhino.

5. It is ILLEGAL to use the BESO engine and the Rhino plug-in of BESO3D for commercial
purpose unless you have the authorization from Centre for Innovative Structures and
Materials.

If the user has any difficulties in obtaining or using BESO3D_for_Rhino, or has queries about updates
of the program, please contact us by email at the following address:

Mike.Xie@rmit.edu.au (Prof. Mike Xie)

Centre for Innovative Structures and Materials, RMIT University


 

You might also like