# Been using the Buildbee 3D modeling tool --- extending it?

**URL:** https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581
**Category:** PXT
**Created:** [January 3, 2022, 4:10am UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581 "2022-01-03T04:10:57Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![willadams](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/willadams/32/5567_2.png) [@willadams](https://forum.makecode.com/u/willadams)
#### Post date: [January 3, 2022, 4:10am UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/1 "2022-01-03T04:10:57Z")

</div>

I’ve begun using @jfo8000 's nifty:

> **[BuildBee | MakeCode](https://makecode.buildbee.com/)**
>
> Learn to code and 3D print your creation with BuildBee using the powerful Microsoft MakeCode Blocks / Javascript editor.

and had some questions (which I’ve posted to a couple of places and mailed in to their site and started a ticket on) and was hoping to pick up some information and maybe to pitch in and help out maybe.

Found this where it was listed on the curated code site:

> **[GitHub - Irev-Dev/curated-code-cad: A list of the various code-cad projects...](https://github.com/Irev-Dev/curated-code-cad)**
>
> A list of the various code-cad projects out there. - GitHub - Irev-Dev/curated-code-cad: A list of the various code-cad projects out there.

at the beginning of the year, and finally had occasion to experiment with it.

It looks really cool, and is a nice fit for the way that I work, except I’m a bit puzzled over some things. I couldn’t see a way to raise an issue at:

> **[GitHub - Buildbee/makecode: Make and print 3D designs with block coding!](https://github.com/Buildbee/makecode)**
>
> Make and print 3D designs with block coding! Contribute to Buildbee/makecode development by creating an account on GitHub.

so please pardon my asking these questions here (I also sent an e-mail to the [info@buildbee.com](mailto:info@buildbee.com) address and as noted above, started a ticket).

If there’s some other venue to pose these questions, please let me know and I’ll redirect — looked, but couldn’t find a forum specifically for this (but was directed here from Reddit).

If I understand correctly, the Python code view is inherited from the base MakeCode project and there isn’t a way to run the code in Python? If that’s the case, what would be involved in adding support so that that would be feasible? If that was worked up, would there be some way to get the resultant program to show a graphical interface where the parameters could be adjusted?

It would be a nice fit for how I work, and looks to be a better option than BlockSCAD which I’ve been using:

> **[3D Project](https://willadams.gitbook.io/design-into-3d/3d-project)**
>
> Joining two or more pieces to create three dimensional parts.

It’s not possible to write out files, or get anything other than a 3D model from the code — would it be possible to add support for writing out text files? (or is that present and I’m not seeing it) Would it be possible to add support for writing out 2D versions of designs using DXFs or SVGs?

---

<div class="post-metadata">

### Author: ![jfo8000](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jfo8000/32/1038_2.png) [@jfo8000](https://forum.makecode.com/u/jfo8000)
#### Post date: [January 20, 2022, 7:22pm UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/2 "2022-01-20T19:22:06Z")

</div>

Yup you can use a very simplistic version of python called static python to code - what you do is flip the editor into Python mode by hitting the dropdown.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/a/a4b909b070715f6c57e1da706f69fb7f0879334f.png)

How it works is that no matter what you’re using (blocks, python, javascript) - it all translates back into the same language for me, and then from there I run your code as a script to generate 3d shapes.

Under the covers it’s using OpenJSCad v1 + a few extra libraries. So your python generates a JSCAD file and is executed in the simulator.

From there what happens is we run all your boolean operations to make and union shapes. Then when you hit save, it walks the shapes and figures out where all the edges are and saves that to a special file of points (called an STL) file. This file can be easily used for 3D printing and is compatible most of the 3D printing software out there.

Converting STL to DXF is really what you would be interested in, I’m imagining - which I admit is not my forte but I think what you can do is take the STL file and put it into FreeCAD - then export.

Love to know what you’ve got in mind!

Feel free to ask for new features at [https://buildbee.com/hive](https://buildbee.com/hive)

JFo

---

<div class="post-metadata">

### Author: ![willadams](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/willadams/32/5567_2.png) [@willadams](https://forum.makecode.com/u/willadams)
#### Post date: [January 20, 2022, 10:07pm UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/3 "2022-01-20T22:07:45Z")

</div>

OpenSCAD has a direct facility to export a DXF or SVG — you use the

```
projection()

```

command to allow for rendering a 2D version of the file. It looks like there’s an option for exporting to DXF form openjscad — if possible, adding support for that would be great.

I’ll try to put in feature requests for the things which I would find helpful:

- support for a command like to projection() and exporting to a DXF or SVG
- ability to save the .mkcd file locally and then to re-load it into a new file (I could see how to save to Downloads, but I couldn’t see how to open)
- the ability to open a file for writing and to write to it and ultimately close it — I would use that to write out G-Code
- a Python module which could be loaded into a file which would allow running the Python code locally in Python and writing out a .stl, and/or a .dxf, and/or the G-Code

---

<div class="post-metadata">

### Author: ![jfo8000](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jfo8000/32/1038_2.png) [@jfo8000](https://forum.makecode.com/u/jfo8000)
#### Post date: [January 24, 2022, 2:50pm UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/4 "2022-01-24T14:50:16Z")

</div>

Interesting. I didn’t know about the projection.

To import a mkcd file - just go back to the main screen and use the import button  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/1/1f9c8f30fdfa83b8e90e1a9ed4c1eadf551efee9.png)

What kind of GCODE are you making - for a CNC? You can run it through the BuildBee printing service to output a GCODE file for 3d printing purposes.

Am wondering if you’ve seen makerjs - it may or may not be a little bit closer to the CNC stuff you’re looking for?

[https://maker.js.org/](https://maker.js.org/)

---

<div class="post-metadata">

### Author: ![jfo8000](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jfo8000/32/1038_2.png) [@jfo8000](https://forum.makecode.com/u/jfo8000)
#### Post date: [January 24, 2022, 2:50pm UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/5 "2022-01-24T14:50:21Z")

</div>

I am also assuming, but possibly not correctly so - that you’ve seen the STL export button  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/f/f9f524cbe308042b66fb3aa017b4c4510c233613.jpeg)

---

<div class="post-metadata">

### Author: ![willadams](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/willadams/32/5567_2.png) [@willadams](https://forum.makecode.com/u/willadams)
#### Post date: [January 24, 2022, 3:54pm UTC](https://forum.makecode.com/t/been-using-the-buildbee-3d-modeling-tool-extending-it/11581/6 "2022-01-24T15:54:16Z")

</div>

Thanks for the information about Import — missed that.

Yes, I’ve looked at Maker.js — it didn’t work out and isn’t a good fit for me — I need 3D and more control than it really affords.

Yes, know about exporting STLs, but it’s not a good fit for my work — I’m making geometry which I want to cut out using tools which most CAM tools don’t support — when I’ve made files which the CAM tool I’m using (Carbide Create) can use, it results in a lot of wasted/extraneous movement.
