Abundance CAD/CAM Software

I believe that size thing is a bug in Maker CAM, I’ve been using KrabzCAM mostly because it’s up to date an maintained.

We’re hoping to have gcode generation directly inside of Abundance pretty soon which should help simplify that whole process!

1 Like

Great software, I have som issues with the “CutLayout” function. It does not place the components flat.
Here is a link to my project: https://abundance.maslowcnc.com/Abundance/run/JitM42/Bench

2 Likes

Hmmm yeah I can confirm that it’s not laying things flat for me either. I’ll figure out what’s going on and fix it, thanks for pointing that out!

This should be working now, although even more improvements are on the way:

1 Like

Perfekt, thank you.
It’s a fun way of thinking about construction. I find that I use a lot of functions, maybe those could be integrated into the receiving molecules to save space in the diagram.
Anyway a great tool.

1 Like

I’ve been thinking about how to do that. You can do math in the atom inputs (ie you can set a circle diameter to be “36.3*2” and it will solve that), but I’ve also been thinking about allowing functions there.

I’m a little bit worried about hiding too much of how things work so it’s not clear which atoms are actually connected to and driven by which inputs, but at the same time it can become a mess of connections otherwise

I understand your concern.
I should probably just use molecules much more actively, is there a way to take pieces of the diagram and turn them into a molecule?
Is there a way to use more complex math in functions - I’m thinking of trigonometry?

2 Likes

Yeah, using a LOT of molecules is the key :grinning_face:. There isn’t an easy way to turn things into a molecule, but you can select them all and then copy and paste them into a molecule.

I think that I played around with supporting all of the Math.sine, Math.pi etc functions in the math, but I can’t remember if I got it working.

I created an issue for this here: Support math operations in the code atom · Issue #382 · BarbourSmith/Abundance · GitHub

1 Like

When I go back and change a minor thing like the diameter of a Regular polygon (6 sides) from 7mm to 5.7mm, everything dependant on it turns blue the output fails. I have also noted this when I change a Move x value to a negative value. Other times it just works as expected, i.e. the changes just propagate through.

As a design tool I am really impressed by the functionality you have implemented and the ease and steady improvement of the application. Thanks again for your expertise.

1 Like

Thanks for testing it out! I know there are still a lot of bugs, but I think we’re making pretty good progress on fixing them.

I haven’t seen this bug, any chance you could capture a video of it happening?

This one I have seen. We changed how the input text values work last week and it seems to be generally kinda broken for negative values. I’m working on fixing that one right now!

I set up recording, went in to change and of course it just worked. I do have a couple of stills that I took the first time. Not sure if they are going to be of any value. Perhaps it is just a load problem on the abundance server.

1 Like

Haha that’s the worst kind of bug :stuck_out_tongue:

I’m going to keep my fingers crossed that it’s an issue with the inputs and try to fix that bug and hopefully we’ll catch the other one along the way :grin:

Is it Possible to extract a 2D face from a 3D geometry? I am enjoying playing a bit with abundance. Very cool. I have done a fair amount of CAD but never as a node path procedural programming thing. Is is possible to slice a 3d shape and obtain a 2D face? Or just a face of an already constructed 3D object? Fun program, looking forward to seeing how it develops What I am imagining is to create several 2d shapes, rotate them out into space at different angles and then pull the shapes created by the places that they cut each other so that I can cut those flat 2d shapes on my machine and then put them together in real life. Or is it possible to extract 3d portions of an assembly?

I was thinking of making stitch together joints for this but I am enjoying that it might be possible to have the CNC cut perfect angled panel ends to glue it all up since they are already in the design.

here is what I have tried. I think it is the wrong tool for this particular job. interesting though.

It occurs to me I could have made a molucule to package the “move rotate extract” line but I am not sure how I would call separate instances of it.

https://abundance.maslowcnc.com/run/wouldchuckit/SkullHalf

1 Like

Maybe silly question. If i have made a molecule in a project but I want to use multiple independent instances of that molecule, how do I do that?

Also, is there a reflect function?

Greedy end user here

You have done such a nice job on the other boolean functions, can we have them all?

Also a way to copy/paste groups of nodes. (i know one can make a molecule but i would like to be able to move and edit groups of nodes too)

Also a transform function (squish, stretch…..)

1 Like

Bugs in abundance using firefox.

1 RENAMING
When I was trying to make a copy of a project and rename it, when I tried to type in the name the copy field on the pop up it kept reverting to an input on the screen. If i didn’t try to rename it the duplication went fine. Also when renaming a project from inside the project it does not seem to change the internal name, just the external one. In this case I had originally named it Skull, which one can see in the top corner but renamed it to SkullHalf which is what the program is making a duplicate project of. The default name for the duplicate was SkullHalf-copy which is what I was trying to unsuccessfully change in this screenshot.

2 CODE
Ok last question for now. I was trying to write code to reflect my design across the XZ plane I copied the example but it is unhappy with the “return” statement being outside of a function. I tried to make a function around the code but then it was unhappy with “await” being outside of an async function
then and “Scale” it could not find.

const Inputs = [
{inputName: “shape”, type: “geometry”, defaultValue: null},

  ]

  //This defines the molecules inputs and creates variables with the same names which can be referenced in the code

let reflectShape = await Scale(library[shape], 0, -1, 0)
return reflectShape

//Console.log works for debugging to better see what is happening under the hood
console.log(“Original shape bounds:”, GetBounds(importedShape))
console.log(“Moved shape bounds:”, GetBounds(movedShape))

https://abundance.maslowcnc.com/run/wouldchuckit/SkullFull

3 MYSTERY
Oh no, mysterious error. I think I have made and object that I want to subtract from the assembly object. It did not want to do that. Error 158566816 No rush on any of this, just playing with the cool toy. Broke it.

Update one. If i added a fusion node between the assembly and the difference, it worked. hmm.

update: It is working now.

1 Like

Not yet, but something like this is on the road map. Basically the ability to “unfold” a 3D shape to lay it out flat to cut.

It should also be pretty possible to say “take every face in this shape and generate a new shape from it”

This is not a silly question. This is an awesome question.

The way to do this is to make that molecule as a separate project and then import it when you want to use it.

Not yet, but I bet we could add one!

I think that this is a limit of the Github API unfortunately. I don’t think that we can rename repositories :confused:

There are absolutely still bugs. If you find a concrete way to replicate them and want to write it down as an issue that is super super helpful!

1 Like

Thank you very much. Fun project. I opened it up in blender. Deleted the inside faces and was able to unfold it using blender export paper model as an SVG. Just a little editing in in inscape and then CAD and the pieces without the nice chamfering (just outlines) will be ready to cut!

1 Like