8 ms·
AngelCAD: Script-based 3D solid modeller
- rowanG077 6y agoWhat is it? Neither the readme or the linked page make clear what this even does.
- adinisom 6y agoThis seems a little more informative: "AngelCAD is a powerful open source 3D solid modeller based on the Constructive Solid Geometry (CSG) modelling technique, expressed in the AngelScript language. The software creates 3D models in STL or other file formats." (https://arnholm.github.io/angelcad-docs/ https://arnholm.github.io/angelcad-docs/)
- dang 6y agoWe've changed the URL now from https://github.com/arnholm/angelcad/releases/tag/v1.4-00 https://github.com/arnholm/angelcad/releases/tag/v1.4-00.
- andybak 6y agohttps://arnholm.github.io/angelcad-docs/ https://arnholm.github.io/angelcad-docs/ > AngelCAD is a powerful open source 3D solid modeller based on the Constructive Solid Geometry (CSG) modelling technique, expressed in the AngelScript language. The software creates 3D models in STL or other file formats. However - I can't see if there's anything out of the ordinary about the app. I'd like to have seen some info on what makes this exceptional.
- dang 6y agoWe've changed the URL to that now from https://github.com/arnholm/angelcad/releases/tag/v1.4-00 https://github.com/arnholm/angelcad/releases/tag/v1.4-00. Thanks!
- regularfry 6y agoLooks very similar to OpenSCAD to me, only with a slightly more procedural language.
- corty 6y agoLooks like OpenSCAD. Any known relation there?
- rowanG077 6y agoWhat are advantages of this compared to openSCAD or CadQuery? Specifically I ditched openSCAD for cadquery because it can't export to brep formats like STEP.
- snarfy 6y agoI'm not sure it's an advantage, but it's nice to see an alternative implementation of CSG. OpenSCAD depends on CGAL. CadQuery depends on CASCADE. This depends on neither as far as I can tell.
- JackMcMack 6y agoWhat IDE are you using for CadQuery? I really want to get into it, but I had trouble getting the default IDE up & running. And standalone python was too troublesome to code/visualize, the feedback loop got too long, especially compared to pure UI CAD such as Fusion360
- rowanG077 6y agoI use cq-editor[1]. For sure CadQuery and CQ-editor have a insanely sucky install experience. I never got it to work by following conda guides. I run NixOS so for me it's as installing it as a package. [1] https://github.com/CadQuery/CQ-editor https://github.com/CadQuery/CQ-editor
- eggy 6y agoI've tried OpenSCAD, and it's nice for what it is. I'll see if this offers more powerful scripting. I used to program AutoLISP routines in AutoCAD decades ago. Creating geometry strictly from LISP without using the GUI was amazing. One I tried that was striving to make the PL uniform across CAD packages is Rosetta [1]. It worked with Rhino and AutoCAD, and you could get it to work with others. [1] http://web.ist.utl.pt/antonio.menezes.leitao/Rosetta/tutorials/introduction.html http://web.ist.utl.pt/antonio.menezes.leitao/Rosetta/tutoria...
- app4soft 6y agoTake a look on VisualScriptCAD too.[0] [0] https://github.com/kovacsv/VisualScriptCAD https://github.com/kovacsv/VisualScriptCAD
- rurban 6y agoIt got a very crazy build system, and uses it for all its dependencies. It uses some kind of special IDE with compilation rules for msvc and gcc, no configure/make, no cmake. In this stage it has no chance of being packaged. I started converting it to autotools, but it's long way to go.
- elcritch 6y agoThis looks very similar to OpenSCAD. If it's being actively developed I'll have to take a look at it! Though, I really wish people would do something like this built on Julia (or perhaps even Nim). There's nothing too magical IMHO in what I can see of AngelScript or OpenSCAD script that couldn't be done with macro transformations. Then you'd get a real language with better documentation, semantics, etc and could integrate with a larger echo system. I'd love to have an ecosytem in Julia where you could build 3D models, then plug them into a FEM model feeding the results into a deep neural net.
- elcritch 6y agoP.S. unfortunately this doesn't appear to support STEP files either. Maybe they'll be able to add it someday.
- imtringued 6y agoI'm not sure how useful this is to you but there is an OpenSCAD workbench for FreeCAD. [0] In theory you should be able to export STEP files via FreeCAD. [0] https://wiki.freecadweb.org/OpenSCAD_Module https://wiki.freecadweb.org/OpenSCAD_Module
- ecopoesis 6y agoWhile technically that works the resulting STEP files aren’t anymore useful than an STL. You can’t send them to a CNC machine.
- WillAdams 6y agoCan't one use the Path Workbench in FreeCAD once an OpenSCAD file is imported? For STLs there are a number of 3D CAM tools: MeshCAM, pyCAM, FreeMill, or importing the file into Autodesk Fusion 360 and using its CAM tools. List of other options at: https://wiki.shapeoko.com/index.php/CAM#3D_2 https://wiki.shapeoko.com/index.php/CAM#3D_2 and https://wiki.shapeoko.com/index.php/Commercial_Software#3D_CAM https://wiki.shapeoko.com/index.php/Commercial_Software#3D_C...
- dang 6y agoSince the project hasn't been discussed on HN before, we changed the URL from https://github.com/arnholm/angelcad/releases/tag/v1.4-00 https://github.com/arnholm/angelcad/releases/tag/v1.4-00 to what appears to be its home page.
- strags 6y agoCurious as to why they'd base this on AngelScript (which I had not heard of before today) instead of a more widespread language like Python?
- cacb 6y agoBecause I wanted a strongly typed language that among many good things provides the opportunity for better error messages. Also, the AngelScript compiler is 100% embedded in the application and does not rely on an external environment like Python does. This makes it very easy to install and use AngelCAD. I know Python is popular, and there is nothing to stop you from developing an alternative front end in Python or any other language of your liking, and still use the AngelCAD boolean engine, just implement the xcsg protocol https://github.com/arnholm/xcsg/wiki https://github.com/arnholm/xcsg/wiki
- hhas01 6y agoA better question would be, why yet another C knockoff on top of XML bloat? It just seems so uninspired. 3D drawing ought to be a slam-dunk for a dedicated DSL: pure functional composition (objects described in terms of relationships with each other), homoiconic (so code can generate code directly; no need for XML middleware makework). Plus pure FP code should time-independent in its evaluation, so it doesn’t take a genius to imagine the benefits of (safely!) introducing a time axis on top of that. Procedural generation, animation; great potential there. This is not all idle speculation, BTW: I wrote a semi-declarative DSL for 2D artwork production that blew its traditional imperative rivals out of the water while also being easy enough for non-programmers to use. So I know there’s potential there, and I’d be fascinated to see what kind of language someone with a mind for 3D math could shape for the task. Plus as a trained sculptor turned automation junkie who can’t stand GUI-based 3D drawing apps (they just don’t fit my head), I’d love to try something with a language-based interface instead. See also: - PostScript, a complete concatenative programming language for 2D drawing (incidentally, Adobe used to do a vector-based 3D drawing tool too: https://web.archive.org/web/19991127092153/http://www.adobe.com/products/dimensions/main.html https://web.archive.org/web/19991127092153/http://www.adobe....) - Alan Kay’s Maru/Nile/Gezira stack (or how to write a full 2D graphics engine in 500LOC: https://news.ycombinator.com/item?id=10540031 https://news.ycombinator.com/item?id=10540031).
- cacb 6y agoI am the designer/developer of AngelCAD. It began from a desire of a fast Constructive Solid Geometry engine, based on a strongly typed scripting language. It is not a goal of the core AngelCAD package to develop a traditional CAD GUI, the emphasis is on scripting. The boolean engine used is xcsg https://github.com/arnholm/xcsg https://github.com/arnholm/xcsg based on Carve https://github.com/arnholm/carve https://github.com/arnholm/carve
- contingencies 6y agoWhy is the syntax so heavy and C-esque? Documentation sections such as Datatypes in AngelScript, C++ Object handles to the application and Memory management are not features I want in a declarative language: accepted wisdom is to use the least powerful tool for the job. Edge cases should be dealt with as the exception, not burdensome as a rule which can be convention over configuration. I would like to suggest something lighter. https://gist.github.com/globalcitizen/ded2ba77b48f75f2813f156c84246e24 https://gist.github.com/globalcitizen/ded2ba77b48f75f2813f15... This would be simpler, less keystrokes, shorter and more legible.
- cacb 6y agoIt is specifically not a 'declarative' language, it is a general purpose language. OpenSCAD uses a declarative language, AngelCAD does not. If you want a declarative language, use OpenSCAD or implement your favorite language on top of the AngelCAD boolean engine (xcsg).
- contingencies 6y agoIt is specifically not a 'declarative' language, it is a general purpose language. OK, but why? Edit: Why not is because of the mentioned norm, ie. use the least powerful tool for the job. Alternatively stated, KISS. Asking programmers to delve in to a new set of assumptions, limitations and so on that could otherwise be avoided is creating friction. Unless there is an explicit reason for doing so, it does not seem wise. Further edit: You make a good point about thought process, and I think graphviz is a clear example of a popular tool where the friction you mention between application-specific concerns and restrictive declarative syntax often lies, sometimes complicating an overall workflow.
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]