14 ms·
I love solvespace, the UI is quick, minimal and easy to come up to speed with. I use it as a 2D parametric sketch pad, for 2D designs for laser cutting, making
by fps-hero 5y ago
I love solvespace, the UI is quick, minimal and easy to come up to speed with.
I use it as a 2D parametric sketch pad, for 2D designs for laser cutting, making 3D models for kicad, and a few basic 3D printed fixtures, but it is in no way a replacement for even Freecad.
The constraints are feature complete, but minimal. Some basic geometry is often a pain to get setup. Once you hit 3D you’ll realise that your basically limited to extruding and revoking sketches. Still a powerful tool but not suitable for serious mechanical design.
What world really needs is for FreeCad to be as usable is it’s paid equivalents. I don’t understand why free software always neglects the UI. How hard is it to even simply copy the time tested work flows in proprietary software. Once you learn Solidworks, Inventor, or Fusion 360, you can pickup any other parametric modeller.
Code as CAD as an idea I believe is flawed. It doesn’t solve any of the hard problems of mechanical design. Designing physical objects requires good visualisations and iterative feedback. I.e changing this dimension solves this interference in a complex assembly. Besides, most mechanical engineering are not proficient coders.
- chrisshroba 5y agoWoah thanks for the rec! I’ve been frustrated with the tools I’ve tried for making laser cutter designs and something free and parametric is just what I’m looking for!
- adastra22 5y ago> How hard is it to even simply copy the time tested work flows in proprietary software. A straight copy would be sued out of existence.
- rapsey 5y ago> Code as CAD as an idea I believe is flawed. It doesn’t solve any of the hard problems of mechanical design. Designing physical objects requires good visualisations and iterative feedback. I.e changing this dimension solves this interference in a complex assembly. Besides, most mechanical engineering are not proficient coders. I mean there is no reason why a visualization of the code could not be produced? It could visualize it in realtime after every save of the code.
- injidup 5y agoThe problem CAD as code doesn't easily solve is how to refer to parts of the generated model for further processing. Consider adding in fillets to parts of your model. You have generated something complex through a series of sketches and extrusions in different orientations. Now you wish to round off some of the sharp edges in the resulting model but not all of them. Using CAD as code you have the problem of trying to select which edges you want. Some have tried to generate things like CSS selectors for 3D geometry. It's clever but hard to use. In a GUI CAD system you just click on the edge. In a good GUI CAD system the selections are robust against slight changes in the feature tree.
- benhurmarcel 5y agoI completely agree, and just to point out that the author answered about this below: https://news.ycombinator.com/item?id=30841614 https://news.ycombinator.com/item?id=30841614 In particular this is interesting, although as a mechanical engineer I don't see that as very practical: https://cadquery.readthedocs.io/en/latest/selectors.html https://cadquery.readthedocs.io/en/latest/selectors.html
- regularfry 5y agoSigned distance fields are one approach to this, but it's a very different way of thinking.
- injidup 5y agoHow does a signed distance field robustly allow you to select one edge out of many considering that these edges are an artefact the previous CSG operations you may have performed? These edges may or may not exist, their adjacent faces may or may not exist. They may be an in a non obvious orientation or be near or far from other edges or faces. Any query language or filter would need to be able to robustly handle such a system. OnShape has this but it is not for end users. It is for library developers. End users still get to point and click because it's the most obvious and simple thing to do.
- TaylorAlexander 5y ago> Code as CAD as an idea I believe is flawed. It doesn’t solve any of the hard problems of mechanical design. Designing physical objects requires good visualisations and iterative feedback. I.e changing this dimension solves this interference in a complex assembly. Besides, most mechanical engineering are not proficient coders. I mean I hate code cad but it is obviously useful to some people, specifically people with coding experience and no CAD experience that want to make a basic object to print on their 3D printer. A program does not have to “solve the hard problems of mechanical” design to be useful to someone. TinkerCAD probably doesn’t solve those hard problems but is obviously useful to beginners.
- phkahler 5y ago>> I mean I hate code cad but it is obviously useful to some people... I completely agree with you. There is plenty of room for a good code-cad, FreeCAD, Solvespace, and LibreCAD. I think we need to focus on improving each tool and better interoperability, which means DXF and/or DWG for 2D and STEP for 3D.
- gmueckl 5y agoImplementing a good complex UI takes a lot of effort. It requires a clear vision, quite thankless attention to details, tedious iteration and something that open source software projects struggle with: willingness to sacrifice cleanliness of the implementation to improve the UX. I have fallen into a particular trap before that FreeCAD also seems to walk into: encumbering the user interface with restrictions imposed by the requirement to be modular and extensible. As a result, the user often experiences much increased friction when some functionality needs to span the boundary of separate modules. I'd say that the spread of features across the many FreeCAD workbenches is a symptom of such software design driven UX.
- tomcam 5y ago> I don’t understand why free software always neglects the UI. Because most programmers aren’t very good at it and because it’s hard. For example, suppose you add a very simple parameter like setting the diameter of a circle. Internally that code is probably pretty simple. Once you expose it to users, you have an enormous amount of ground to cover. A few examples would include: * How to handle a cancellation, such as the after pressing escape. Dismiss the dialogue? What if there are other settings in the same dialogue with newly altered values? Cancel the whole thing and lose other input or what? * Undo, perhaps multilevel. If multilevel undo, do you set the number of levels yourself or do you allow that to be configured via a separate settings dialogue? Limit to memory or some fixed number of steps? Once saved, do you save those values in the user application data space, environment variables, a real database, the local directory, a hidden directory, or some combination of all these? * Constraining input. You may not be dealing with keyboard input exclusively. Maybe you decide to let dragging the mouse set that value. Or maybe you want the up and down arrow keys to work, in which case you need to set an increment. Maybe that increment needs to be reflected in a Settings dialogue. * What about units? Should they be integer, big integer, or float? Percentage or pixels or centimeters or inches? * Accessibility. If voice input, do you come up with a of vocabulary of your commands for your app? If for limited range of motion, how do you design the dialogue to be visually attractive and not too cluttered but still useful for someone who can only move the pointing device a few millimeters at a time? What kind of color themes are accessible for the dialogue and the rest of the app? should these be supplied by the operating system or should you include color configurations as part of your app? * How does the host OS handle flexible dialogue sizes and responsive screen size, if at all? Who does the UX for the mobile version? iOS only or also include android support?
- ssl232 5y ago> Code as CAD as an idea I believe is flawed. I find it more intuitive as a paradigm, but I think the real reason for lack of code interfaces in professional packages is probably because CAD models are built incrementally, and a lot of computation that the user doesn't notice gets baked in along the way. The workflows in CadQuery and OpenSCAD involve rerunning the whole script after every modification, effectively rebuilding everything from scratch each time, which quickly stops being fast as the model gets more complex.
- paulftw 5y agoI spent quite some time in FreeCAD, then switched to makerjs. For the last two covid years "code cad" designs for laser cutter have consumed most of my free time. I am also building my own online editor with focus on UX and live reloading [1]. Few key learnings I had about code vs visual (tldr it's complicated): - It works great for flat laser cut assemblies, but once you start doing t-nut and finger joints you really need to see your pieces rotated and aligned in 3D. and that's a lot of extra code - Writing a geometry library from scratch is really hard. I tried multiple newer JS libraries (that aren't ports of OpenCASCADE / CGAL) and all of them had numerous bugs in boolean operations, offsets, etc. There's just too many corner cases, compounding errors, APIs that haven't been thought thru and became a tech debt, etc. - Maybe I'm looking in the wrong places or building a wrong thing, but there aren't that many users interested in "writing code for a 3d printer". Very few people dropping complex code cad projects on github. It feels like everyone who does is also building their own CAD platform ;) [1] https://scriptcad.com https://scriptcad.com , https://scriptcad.com/paulftw/OpenSCAD.Tutorial https://scriptcad.com/paulftw/OpenSCAD.Tutorial
- regularfry 5y ago> What world really needs is for FreeCad to be as usable is it’s paid equivalents. I don’t understand why free software always neglects the UI. My observation is that the problem isn't that the UI is neglected, it's that almost any suggestion to improve it gets bogged down in community objections. There's always someone on the forums who'll defend some aspect of the status quo (usually a vocal minority), either on the basis that "the problem is intrinsically complicated so a complicated UI is inevitable, so stop complaining" (which is, for the record, utter nonsense), or "we can't know if the change breaks someone's workflow", or "we need to expose the implementation details so you know what's going on" (again, nonsense). What you end up with is evangelists on Twitter calling out for more contributions, and the community shouting down contributions which would actually help. The whole thing's fundamentally broken not because the code can't be written, or because the ideas aren't out there, but because it's incredibly hard to make progress unless you're already a core developer (which, yes, there are too few of).
- deleted 5y ago[deleted]
- ur-whale 5y ago>Code as CAD as an idea I believe is flawed. Strongly disagree, the typical problems one has with designing objects and mechanisms in CAD tools are extremely similar to the problems software engineers have. Parametric design, for example, is nothing but a program whose inputs change and whose outputs are 3D model. Versioning is another obvious example. Parts reuse yet another. Test driven design. Automated testing. The list is very long. > Designing physical objects requires good visualisations and iterative feedback True, but I fail to see how that is incompatible with code as CAD. > Besides, most mechanical engineering are not proficient coders. In the 80's most traditional film animators had never touched a computer. These folks are now either out of a job or have switched to using computers. The fact that mechanical engineers aren't proficient coders is a symptom of the fact that proper 'code as CAD' tools don't exist yet, not a law of physics. When such tools start to reach maturity, you will see - just like it happened in film animation - a whole new generation of mechanical engineer pick up the new tools and beat the pants of the old way of doing things.
- brianhorakh 5y agoLove the analogy. Openscad does exist. Openscad has language bindings to at least rust and python. Openscad is already embedded inside freecad.
- marcosdumay 5y agoAs evidenced by this thread, Openscad is not good enough to be a proper 'code as CAD' tool. If it was, we wouldn't be having this conversation. It is a very good tool, that does a lot of things better than visual CADs. But it's not good enough to do everything better than a visual CAD. At least not yet.
- vba616 5y agoThe main gripes I have with it are that it doesn't use all available processors and it doesn't have easy-to-use generalized fillets. I feel like the algorithms must be inefficient even considering it runs on a single CPU. I don't, however, have experience with the commercial products since I'm not a professional engineer. Are there other shortcomings you have in mind?
- liotier 5y ago> I don’t understand why free software always neglects the UI Because UX is multidisciplinary, which is hard when collaborators are loosely coordinated and even harder when the entire team is developers - or developer, singular. Also, it requires knowing the users and walking in their shoes. That marketing attitude is absent when the project is about scratching one's own itch. Even when attempting to reach audiences beyond oneself, the change of perspective is hard while immersed in the project's internals. Non-developers thinking they'll help will have a hard time establishing sufficient credibility for any sort of fruitful cooperation to occur. And that of, course, is before everyone starts getting territorial about it...
- deleted 5y ago[deleted]
- algo_trader 5y agoOffTopic: Can you recommend an (open/freemium) tool for (3D) modelling and animating a warehouse or a port? I started with some excel analysis, and now a detailed agent-based modelling with a Java tool. Any tools to visualize (and animate) the physical layout??
- cinntaile 5y agoThis sounds interesting, out of curiosity... What is it that you're trying to do?
- algo_trader 5y agoJust a toy model for improving electrification of heavy transport. Higher utilization and careful scheduling brings down capex and opex. Looks feasible. But i am not an electrical or production engineer.
- wheelinsupial 5y agoAnyLogic has a personal learning edition you might be able to use depending on your use case. I had a prof for a course on probabilistic methods in operations research whose work flow was to use Python for the modeling and simulation work, and then they would use AnyLogic to simplify the analysis and present a 3D overview of the process.
- algo_trader 5y agoI played with AnyLogic and its fantastic But AFAIK, it is not a full CAD program. But looking again at this demo [1], I realize you can go a long long way with it. [1] https://youtu.be/Snx1R42JnBE?t=95 https://youtu.be/Snx1R42JnBE?t=95
- wheelinsupial 5y agoIt's a simulation software that allows you to animate the systems you are modeling, so you're right that it isn't a CAD program.
- phkahler 5y ago>> I love solvespace, the UI is quick, minimal and easy to come up to speed with. I use it as a 2D parametric sketch pad, for 2D designs for laser cutting, making 3D models for kicad, and a few basic 3D printed fixtures, but it is in no way a replacement for even Freecad. Solvespace maintainer here. I appreciate your assessment of Solvespace and feel it's accurate. My intent is to bring more capability to it while maintaining the feel of it which seems hard to quantify. I understand why people use FreeCAD - it's much more comprehensive. What's interesting is that you also use Solvespace because it's "better" in some way (and I agree). How would you describe that? What keeps you using it?
- throwaway889900 5y agoNot the person you're replying to, but in my experience going from Fusion360 to a new program due to license changes, FreeCAD has a lot of "boilerplate work" you need to do in order to get to modelling, including understanding the toolbars you need, parts, etc. but in Solvespace it's pretty much just draw and constrain like in Fusion360. FreeCAD spits out cryptic errors in a big log at the bottom that's pretty useless, but Solvespace tells you exactly what's wrong (generally). It is missing a few things, like selecting a face won't let me draw on that face, which it probably should allow since it technically knows all the information about that plane (face origin and normal). And Fusion360's inset tool is invaluable for making stepped features from existing complex geometry without having to redraw and constrain a whole new set of stuff. And also negative extrusion distances, which are basically a difference boolean operation, should probably be allowed for usability. But overall I'm very happy with Solvespace.
- phkahler 5y ago>> It is missing a few things, like selecting a face won't let me draw on that face That's issue #423. https://github.com/solvespace/solvespace/issues/423 https://github.com/solvespace/solvespace/issues/423 There isn't always enough information to create a new sketch plane, but often there is. It would probably be confusing to allow it on the sides of an extrusion but not the top and bottom. The changes needed to carry the extra information would break file compatibility, but I'd like to do a number of such changes all at once some day not soon. >>FreeCAD spits out cryptic errors in a big log at the bottom that's pretty useless, but Solvespace tells you exactly what's wrong (generally) I hadn't thought about error messages as a selling point, but I'll try to continue the trend of being informative.
- tepitoperrito 5y agoA bigger reason that FreeCAD isn't as good as it's paid equivalents is the lack of reliable undo (as well as a few other problems caused by the same issue). This doesn't stem from the UI, but from the handling of core CAD data structures. For instance see the topological naming problem and the constraints it imposes on designers[0]. Realthunder3 has a branch that helps move a lot of this forward. [0] https://wiki.freecadweb.org/Topological_naming_problem https://wiki.freecadweb.org/Topological_naming_problem