Replies: 3 comments
-
Nice, let me know if you run into any issues! |
Beta Was this translation helpful? Give feedback.
-
Warning General Brain DUMP. This is not criticism of your work (it's awesome); just what I see. I have been building a gridfinity generator (mostly after the kids are asleep and the housework has been done). I'm liking the interface so far.
Rust types make building stuff quite intuitive because my editor (vscode) gives me hints on types and functions help. I find myself getting a little confused with Shape and Solid but that can be easily fixed.
Building is slow , I don't know if I am not holding it correctly, but building 5x5 gridfinity units can take up to 20ish seconds on an OK machine. Would likeSome of these already have issues but this is what I would like for the kind of mechanical modelling I'm looking to do.
Complicated Questions.Assemblies should be an integral part of the API (in the fullness of time) and the big question I see on this is use the OCCT interface for compound objects, ( makes export easier ) or do assemblies as rusty object and convert into the OCCT form. I am a sucker for constraint base parametric constructs ( see my cqparts work ) and I think that this would be a good interface for packaging up hierarchical constructions that attempt to solve themselves in a declarative way. I have been thinking about a a DSLcad(ish) interface where some input declaration (text , or API ) are compiled through opencascade-rs into usable engineering specs. The interface should be amenable to levels of abstraction upwards. Other than that, cool project, I will keep noodling with it for now. If you have any comments or observations I am happy to answer. I have lots of opinions ;P |
Beta Was this translation helpful? Give feedback.
-
Hey @zignig , thanks so much for the thoughtful writeup!
I agree, it's too slow to be generally usable. This has been improved since we extracted
Hmm, I was expecting a few 10s of megabytes. The keycap example binary is 17M for me:
Are you compiling and running in release mode? (
That's great, and certainly one of the benefits I was hoping Rust would bring. Glad to hear it's actually working.
I'll look into this. The underlying C++ binding library gives me unique pointers for things, which inhibits cloning, but maybe I should be using shared pointers instead. Needs more research.
Yep I've been putting this off a bit. There are different ways to transform things like Euler XYZ rotation, or quaternions for rotation, and I wanted to make sure I get the API right for this part so it's easy and produces expected results in as many cases as possible.
Again I would check you're invoking cargo with the
I want this too! I also recently saw a video on shadow lines and have wanted to build that into this library since then :)
Yep this is needed, there's just a default value in there for now. Feel free to submit a PR and I'd be happy to review it.
I'm leaning towards doing this in Rust and converting to OCCT form later, should give me better control and be easier to iterate on the implementation. I haven't really sat down and thought hard about this yet though, so I can't comment much more on that. Rest assured I consider it a crucial feature though!
I think constraint-based approaches are nice too, and I always enjoy SolveSpace when I use it. Their solver is open source, so there's an opportunity to integrate parts of that into this project.
Could you expand on this a bit more? I'm not quite sure what this would look like in practice. Cheers! |
Beta Was this translation helpful? Give feedback.
-
I am going to start a repo in...
https://github.com/zignig/cascade_rs_investigations
to make some stuff and things.
Beta Was this translation helpful? Give feedback.
All reactions