Scripts and User Functions Center

Create a launcher satellite

This script creates a launcher satellite

Thumb launcher Thumb launcher nf
#
#	 newFASANT script file 
#
#	Creates the launcher represented in Launcher.png,
#	with the following specifications:
#		L1: Height of 1st part (cylindrical), in Z dimension
#		L2: Height of 2nd part (conical), in Z dimension
#		L3: Height of 3rd part (cylindrical), in Z dimension
#		L4: Height of 4th part (conical), in Z dimension
#		L5: Height of 5th part (cylindrical), in Z dimension
#		L6: Height of 6th part (spherically blunted tangent ogive), in Z dimension
#		L7: Height of secondary bodies, 1st part (cylindrical), in Z dimension
#		L8: Height of secondary bodies, 2nd part (tangent ogive), in Z dimension
#		d: separation between main and secondary bodies, in X dimension
#		R1: Radius of 1st cylindrical part, in XY dimensions
#		R2: Radius of 2nd cylindrical part, in XY dimensions
#		R3: Radius of 3rd cylindrical part, in XY dimensions
#		R4: Radius of the spherical end of the top ogive, in XY dimensions
#		R5: Radius of secondary bodies, 1st cylindrical part, in XY dimensions
#		R6: Radius of transversal cylinders, in Z dimension
#
#	See image Launcher.png for further information
#
#	Parameters with fixed values

set L1 {9.0}
set L2 {2.0}
set L3 {12.0}
set L4 {1.5}
set L5 {2.5}
set L6 {1.75}
set L7 {8.0}
set L8 {1.5}
set d {0.15}
set R1 {1.4}
set R2 {1.0}
set R3 {1.25}
set R4 {0.25}
set R5 {0.75}
set R6 {0.25}
#
#	Auxiliary parameters defined automatically

set $1  = -(L1+L2+L3+L4+L5+L6)/2.0
set $2  = L1-(L1+L2+L3+L4+L5+L6)/2.0
set $3  = L1+L2-(L1+L2+L3+L4+L5+L6)/2.0
set $4  = L1+L2+L3-(L1+L2+L3+L4+L5+L6)/2.0
set $5  = L1+L2+L3+L4-(L1+L2+L3+L4+L5+L6)/2.0
set $6  = L1+L2+L3+L4+L5-(L1+L2+L3+L4+L5+L6)/2.0
set $7  = R1+d+R5
set $8  = L7-(L1+L2+L3+L4+L5+L6)/2.0
set $9  = -(R1+d+R5)
set $10  = 0.25*L7-(L1+L2+L3+L4+L5+L6)/2.0
set $11  = R1/2.0
set $12  = d+(R1+R6)/2.0
set $13  = 0.75*L7-(L1+L2+L3+L4+L5+L6)/2.0
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height)
#	It creates the first cylinder of the main body, starting from the lower part

cylinder -c -n MainCylinder1 -p 0.0 0.0 $1 R1 L1
#
#	Cone primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, bottom radius, 
#	height, top radius)
#	It creates the second section of the main body, which is placed on the
#	previous cylinder

cone -c -n MainCone2 -p 0.0 0.0 $2 R1 L2 R2
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height)
#	It creates the second cylinder of the main body, which is placed on the
#	previous cone

cylinder -c -n MainCylinder3 -p 0.0 0.0 $3 R2 L3
#
#	Cone primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, bottom radius, 
#	height, top radius)
#	It creates the fourth section of the main body, which is placed on the
#	previous cylinder

cone -c -n MainCone4 -p 0.0 0.0 $4 R2 L4 R3
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height)
#	It creates the last cylinder of the main body, which is placed on the
#	previous cone

cylinder -c -n MainCylinder5 -p 0.0 0.0 $5 R3 L5
#
#	Ogive primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, bottom radius, height,
#	and top radius of the spherical head)
#	It creates the top of spherically blunted tangent ogive of the main body, 
#	which is placed on the previous cone

ogive -c -n MainOgive6 -p 0.0 0.0 $6 R3 L6 R4
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the first cylinder with the first cone

booleanXOR -s -objectA MainCylinder1 -objectB MainCone2 -n MainBody1
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the last object with the next cylinder

booleanXOR -s -objectA MainBody1 -objectB MainCylinder3 -n MainBody2
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the last object with the next cone

booleanXOR -s -objectA MainBody2 -objectB MainCone4 -n MainBody3
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the last object with the last cylinder

booleanXOR -s -objectA MainBody3 -objectB MainCylinder5 -n MainBody4
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the last object with the ogive at the top
#	The main body is obtained

booleanXOR -s -objectA MainBody4 -objectB MainOgive6 -n MainBody5
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height)
#	It creates the right cylinder (positive X side)

cylinder -c -n RightCylinder -p $7 0.0 $1 R5 L7
#
#	Ogive primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, bottom radius, height,
#	and top radius of the spherical head)
#	It creates the right tangent ogive (positive X side)

ogive -c -n RightOgive -p $7 0.0 $8 R5 L8 0.0
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the right elements (positive X side)

booleanXOR -s -objectA RightCylinder -objectB RightOgive -n RightBody
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height)
#	It creates the left cylinder

cylinder -c -n LeftCylinder -p $9 0.0 $1 R5 L7
#
#	Ogive primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, bottom radius, height,
#	and top radius of the spherical head)
#	It creates the left tangent ogive

ogive -c -n LeftOgive -p $9 0.0 $8 R5 L8 0.0
#
# 	Exclusive Union of two objects: the common surfaces are removed
#	It joins the left elements

booleanXOR -s -objectA LeftCylinder -objectB LeftOgive -n LeftBody
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height); 
#	and the transformation matrix that set its orientation.
#	It creates the left-lower transversal cylinder

cylinder -c -n TransversalCylinder1 -p 0.0 $10 $11 R6 $12 \
	-t 0.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height); 
#	and the transformation matrix that set its orientation.
#	It creates the left-upper transversal cylinder

cylinder -c -n TransversalCylinder2 -p 0.0 $13 $11 R6 $12 \
	-t 0.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height); 
#	and the transformation matrix that set its orientation.
#	It creates the left-lower transversal cylinder

cylinder -c -n TransversalCylinder3 -p $10 0.0 $11 R6 $12 \
	-t 0.0 0.0 -1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
#
#	Cylinder primitive (-c: closed), specified by the name of resulting object;
#	and its geometric parameters (-p) (base center X Y Z, radius, height); 
#	and the transformation matrix that set its orientation.
#	It creates the left-upper transversal cylinder

cylinder -c -n TransversalCylinder4 -p $13 0.0 $11 R6 $12 \
	-t 0.0 0.0 -1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
#
# 	Boolean Union of two objects: the common regions are obtained
#	It provides the final launcher body

booleanUnion -s -objectA TransversalCylinder1 TransversalCylinder2 TransversalCylinder3 TransversalCylinder4 -objectB MainBody5 LeftBody RightBody -n Launcher

Did you find this information useful?

We use cookies on this website to improve your navigation experience on this site. By using this site, you agree to our cookie policy.

I agree