3D Design Using Coding (EisenScript)
by carlos10mrt in Workshop > 3D Design
752 Views, 2 Favorites, 0 Comments
3D Design Using Coding (EisenScript)
![Code.jpg](/proxy/?url=https://content.instructables.com/FFD/MG7N/KAV2U4BL/FFDMG7NKAV2U4BL.jpg&filename=Code.jpg)
I am a very-keen-on-technology kind of guy, and I love trying new things and experimenting with them even if there is no specific purposes. That's what happened a few months ago: I found this software (StructureSynth) which lets you design in a three-dimensional workspace without any built-in commands found in CAD (Computer Assisted Design) softwares, but using its own coding language, called EisenScript. This code language uses primitive shapes, such as boxes and spheres; and transformation and translation commands to create objects that would be very challenging to design on a CAD software.
After using for the first time StructureSynth, I thought it would be very difficult for me to learn this language, so I left it aside. Until last week: when I came across this contest and I thought it was the perfect reason to learn this EisenScript language.
This is why I want to share a step-by-step guide on how I learnt to use this software and what I did.
Supplies
-PC or laptop
-Creativity
Learn EisenScript Language
![Interface_v2.jpg](/proxy/?url=https://content.instructables.com/FN2/KM4I/KAV2SI8B/FN2KM4IKAV2SI8B.jpg&filename=Interface_v2.jpg)
![Interface_v3.jpg](/proxy/?url=https://content.instructables.com/F4X/A49J/KAV2SI8N/F4XA49JKAV2SI8N.jpg&filename=Interface_v3.jpg)
![2020-05-31 16_46_27-Cortana.jpg](/proxy/?url=https://content.instructables.com/FCU/MXVO/KAV2SID6/FCUMXVOKAV2SID6.jpg&filename=2020-05-31 16_46_27-Cortana.jpg)
![2020-05-31 16_46_47-Inicio.jpg](/proxy/?url=https://content.instructables.com/F63/OCKX/KAV2SIDI/F63OCKXKAV2SIDI.jpg&filename=2020-05-31 16_46_47-Inicio.jpg)
![Interface_default.jpg](/proxy/?url=https://content.instructables.com/FW5/ZCQZ/KATNE9V5/FW5ZCQZKATNE9V5.jpg&filename=Interface_default.jpg)
There aren't many resources on the Internet which teach you how to code using this language, so what I did is to take the coding examples in the software and analyze them as much as I could, from the basic shapes and transformations, to the most complex and intricate codes.
After analyzing them, I decided it would help a lot making a chart with the meaning of each command, so that I could remember them much more easily.
(The most important thing you should think about is that you must practice to get familiar with this code)
Come Up With a Project
![concepto-idea-diseno-grafico_23-2148121002.jpg](/proxy/?url=https://content.instructables.com/F85/NNT4/KAV2SIX7/F85NNT4KAV2SIX7.jpg&filename=concepto-idea-diseno-grafico_23-2148121002.jpg)
![Pin_tray_render.png](/proxy/?url=https://content.instructables.com/FS4/18MK/KATNE9V1/FS418MKKATNE9V1.png&filename=Pin_tray_render.png)
A problem I faced after learning the basics about the EisenScript language was to make a useful design to 3D print afterwards. It was quite challenging, as I didn't have much practice; which meant I had to find a simple but practical object.
After spending almost 1 hour thinking about this, I eventually came up with the idea of doing a pin-tray: an object that's used to leave your keys, your wallet, some cash... when you come home.
Now I just needed to figure out the script.
Final Step: Create the Script
![Pin tray render.png](/proxy/?url=https://content.instructables.com/FDU/SDCE/KATNE9UZ/FDUSDCEKATNE9UZ.png&filename=Pin tray render.png)
![Interface.jpg](/proxy/?url=https://content.instructables.com/FSC/9UF4/KATNE9V4/FSC9UF4KATNE9V4.jpg&filename=Interface.jpg)
I spent a lot of time until I worked out exactly how I wanted it to look like and designed the script that would create the pin-tray.
It is quite a simple script, but the design turned out to be as basic and useful as I wanted it to be.
Now I just need to export it as an .OBJ file and 3D print it.
(You can find the code I used in the image. However, you can also copy and paste it directly from here:)
set background #fff
set maxdepth 25
r0
Rule r0 {
36 * { rz 10} R1
}
Rule R1 {
{ x 3 ry 5 rz 0.7 rx 2 s 0.99} R1
{ s 4 } box
}