--
You received this message because you are subscribed to the Google Groups "PythonSCAD" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pythonscad+...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/pythonscad/63b1faf5-7656-4233-94cf-b3aaf0db2e92n%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion, visit https://groups.google.com/d/msgid/pythonscad/69376146-61f9-406a-8c5a-1243130305e0n%40googlegroups.com.
Just my twopenn'orth -
size = 6
cube([marked(size), marked(size), marked(size)]).show()
In geometry, the hierarchy starts from a point, then to a line, then a plane, and finally a solid. In OpenSCAD (and now PythonSCAD), the smallest directly viewable item is a plane. This makes GUI manipulation a bit clunky. Representing 3D geometry via a 2D interface is always tricky — especially when you’re trying to support both direct manipulation and strict parametric modelling.
Best wishes,
Ray
To view this discussion, visit https://groups.google.com/d/msgid/pythonscad/CAASeUHr7DCY_wh%2BQoGBpbLY4Fw0GoLFf%2B4bm7zuJ3Wh_6piW-w%40mail.gmail.com.
Maybe it is just me, but I know in the past I would have liked to
have moved a point in openscad, but now I think it is
unnecessary. I had earlier used freecad, and the interface was
annoying. I prefer the programmatical approach for most of what I
do. Dragging things around the screen seems rather imprecise,
unless trying to trace part of an existing shape.
If you want to manipulate a cube, (any shape, in fact) treat it
as a polyhedron. If you leave it as a cube then you'll have to
feed back to the script the distance dragged, etc. If you don't do
that, the script will be useless to the user if referred to later
on, expecting the same results. (Of course a list of points and
faces is not much use the user, either). I do not think that the
system lends itself to an interactive gui, the feedback will be
too slow, certainly for any non-trivial shapes.
Hi Raymond,
Yes I should actually check, if the argument of marked() is actually a number and not a variable.But we are just at the "evaluate options" phase ;)
Best practice so far is to put least amount of marked() into your code, because they could very easily becomecontradictory. Imagine this one
translate(cube([10,10,marked(10)]), [0,0,marked(10)])
This is a 10x10x10 cube elevated by 10.If you now vertically drag the point, it's not clear if the user wants to reduce the height of the cube or to move it lower.I believe current implementation alters both parameters which is not the users intent.(right now this actually does not happen due to an internal weakness)
Its not possible to have all vertices of a cube draggable by default, because if you can very easily render situation where the result is not a cube anymore and therefore cannot be described as cube() in the code.
Nope, dragging on the cube does neither affect edges, faces or edges, but only parameters(these can be altered in code).The behaviour you are experiencing was my best guess to make it look reasonable. But there might bebetter strategies, how to map a mouse movement to cube parameters.
yes: Representing 3D geometry via a 2D interface is always tricky.This is why interactive dragging works best if the drag movement path is parallel to your screen surface 🤣So before each drag operation , please optimize your viewing angle ...
To view this discussion, visit https://groups.google.com/d/msgid/pythonscad/96f65dea-6b98-40f6-a1f8-0e7847feefca%40raywest.com.
I also prefer the programmatic approach — it's much more precise. Dragging things around the screen tends to be imprecise.
Dragging can be useful when arranging multiple objects right before printing, but that's something the slicer handles perfectly.
Trying to mix both techniques in OpenSCAD will probably lead to nightmares.
To view this discussion, visit https://groups.google.com/d/msgid/pythonscad/4d0e2e22-21ab-45fb-8b38-38e91f445867%40raywest.com.