discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

ClikScad - create OpenSCAD models without all the typing

R
Robin2
Mon, Oct 28, 2019 9:18 AM

tp3 wrote

Why all the $ variables?

To be perfectly honest I cannot now remember but I believe I had concluded
that the way my ClikScad creates code would only work with $variables. If I
have some time today I will read back through my development notes - maybe I
wrote about it.

Keep in mind that ClikScad has two primary (and parallel) objectives - {A}
keeping the Python code simple and {B} the whole thing aimed at
inexperienced and occasional users of OpenSCAD. Power users are very
welcome, but they are not the target market.

...R

--
Sent from: http://forum.openscad.org/

tp3 wrote > Why all the $ variables? To be perfectly honest I cannot now remember but I believe I had concluded that the way my ClikScad creates code would only work with $variables. If I have some time today I will read back through my development notes - maybe I wrote about it. Keep in mind that ClikScad has two primary (and parallel) objectives - {A} keeping the Python code simple and {B} the whole thing aimed at inexperienced and occasional users of OpenSCAD. Power users are very welcome, but they are not the target market. ...R -- Sent from: http://forum.openscad.org/
R
Robin2
Mon, Oct 28, 2019 1:47 PM

Later ....

Modifying ClikScad so it produces OpenSCAD code that is compatible with the
Customizer has proved to be very easy and I will probably incorporate that
in the next version, primarily so that I don't alienate those who favour the
Customizer.

However from a practical point of view it seems to me that it would just
confuse ClikScad users to offer two ways of doing the same thing - ClikScad
and the Customizer. IMHO it would be easier for the user to make the changes
directly in ClikScad.

And on the subject of $variables, even though it was not the primary reason
for choosing to use them, they offer a very convenient means to trigger a
popup from which the user can select them and avoid the risk of typing
errors. So they will be staying. That may offend some programming purists
but I don't believe it will cause any irreparable damage to anyone's model.

...R

--
Sent from: http://forum.openscad.org/

Later .... Modifying ClikScad so it produces OpenSCAD code that is compatible with the Customizer has proved to be very easy and I will probably incorporate that in the next version, primarily so that I don't alienate those who favour the Customizer. However from a practical point of view it seems to me that it would just confuse ClikScad users to offer two ways of doing the same thing - ClikScad and the Customizer. IMHO it would be easier for the user to make the changes directly in ClikScad. And on the subject of $variables, even though it was not the primary reason for choosing to use them, they offer a very convenient means to trigger a popup from which the user can select them and avoid the risk of typing errors. So they will be staying. That may offend some programming purists but I don't believe it will cause any irreparable damage to anyone's model. ...R -- Sent from: http://forum.openscad.org/
TP
Torsten Paul
Mon, Oct 28, 2019 4:36 PM

On 28.10.19 14:47, Robin2 wrote:

And on the subject of $variables, even though it was
not the primary reason for choosing to use them, they
offer a very convenient means to trigger a popup from
which the user can select them and avoid the risk of
typing errors. So they will be staying. That may
offend some programming purists but I don't believe
it will cause any irreparable damage to anyone's model.

It's not about purists or style.

Using $ variables means fundamentally different behavior.

All I'm saying is: Don't use them because the look
cute. If usage matches the intended behavior, that's
fine.

Or in other words, be aware of the effects to not get
something similar to
https://geekandpoke.typepad.com/geekandpoke/2012/04/simply-explained-gv.html

ciao,
Torsten.

On 28.10.19 14:47, Robin2 wrote: > And on the subject of $variables, even though it was > not the primary reason for choosing to use them, they > offer a very convenient means to trigger a popup from > which the user can select them and avoid the risk of > typing errors. So they will be staying. That may > offend some programming purists but I don't believe > it will cause any irreparable damage to anyone's model. It's not about purists or style. Using $ variables means fundamentally different behavior. All I'm saying is: Don't use them because the *look* cute. If usage matches the intended behavior, that's fine. Or in other words, be aware of the effects to not get something similar to https://geekandpoke.typepad.com/geekandpoke/2012/04/simply-explained-gv.html ciao, Torsten.
MK
Marius Kintel
Tue, Oct 29, 2019 1:43 AM

On Oct 25, 2019, at 04:30, Robin2 robin@nbleopard.com wrote:

I don't know their names but I presume there are some people who act as the
"guardian" of the OpenSCAD project
All I mean by "support" is a statement of encouragement - "We believe XXX
would be a useful addition to OpenSCAD[...] maybe "we will bundle it with (or link to it from) OpenSCAD wen
it is sufficiently complete"

A graphical editor has been thought about and discussed many times, and it's a really interesting topic.
Both the MIT Scratch concept and the node-based editor, as discussed in this thread, are common solutions to such a challenge and they both have numerous implementations both in other software and as part of OpenSCAD or OpenSCAD-inspired software.

I do encourage exploration and experimentation in this domain, and we'd be happy to at the very least link to interesting projects that relates to OpenSCAD in some way.

Two things to keep in mind:

  • Even if this mainly provides value to occasional or new users of OpenSCAD and hence is primarily targeting small designs,
    I think that such a feature should consider what would happen if used "one level up". Lots of interesting topics can pop up here (e.g. are the two representations isomorphic?, how do you compose larger objects? how do you manage abstractions?)

  • Bundling such an editor with OpenSCAD pretty much means integrating it into the software itself, which is likely a bit of an undertaking which includes both writing the editor itself, necessary refactoring of our internal APIs and UI to make it fit, plus long-term maintenance. Maintaining this as a stand-alone companion tool is probably a much easier way to test out the concept, learn about your users and refine both the concept and solution until it's clear where it fits.

Kind Regards,

-Marius

On Oct 25, 2019, at 04:30, Robin2 <robin@nbleopard.com> wrote: > > I don't know their names but I presume there are some people who act as the > "guardian" of the OpenSCAD project > All I mean by "support" is a statement of encouragement - "We believe XXX > would be a useful addition to OpenSCAD[...] maybe "we will bundle it with (or link to it from) OpenSCAD wen > it is sufficiently complete" > A graphical editor has been thought about and discussed many times, and it's a really interesting topic. Both the MIT Scratch concept and the node-based editor, as discussed in this thread, are common solutions to such a challenge and they both have numerous implementations both in other software and as part of OpenSCAD or OpenSCAD-inspired software. I do encourage exploration and experimentation in this domain, and we'd be happy to at the very least _link_ to interesting projects that relates to OpenSCAD in some way. Two things to keep in mind: * Even if this mainly provides value to occasional or new users of OpenSCAD and hence is primarily targeting small designs, I think that such a feature should consider what would happen if used "one level up". Lots of interesting topics can pop up here (e.g. are the two representations isomorphic?, how do you compose larger objects? how do you manage abstractions?) * Bundling such an editor with OpenSCAD pretty much means integrating it into the software itself, which is likely a bit of an undertaking which includes both writing the editor itself, necessary refactoring of our internal APIs and UI to make it fit, plus long-term maintenance. Maintaining this as a stand-alone companion tool is probably a much easier way to test out the concept, learn about your users and refine both the concept and solution until it's clear where it fits. Kind Regards, -Marius
R
Robin2
Tue, Oct 29, 2019 8:51 AM

kintel wrote

(e.g. are the two representations isomorphic?, how do you compose larger
objects? how do you manage abstractions?)

Perhaps the most eloquent response I can make is that I have no idea what
you mean by that. You clearly know a great deal more about OpenSCAD and how
3D models can be represented.

I see some very esoteric discussions on this Forum but I cannot conceive of
what the models behind them will be used for.They seem to be much too
complex for 3D printing as a single object. I have to say I get the
impression (perhaps wrongly) that some people are trying to use OpenSCAD in
situations where another CAD program would be more suitable.

  • Bundling such an editor with OpenSCAD

I don't see any need for it in the near term. What could be useful for
beginners is a page that can be accessed from the Documentation index
(http://www.openscad.org/documentation.html?version=2015.03) that has links
to the various graphical front ends that are available and, perhaps, some
guidance to help someone understand their differences and encourage people
to try that approach to using OpenSCAD.

Many thanks fr your interest,

...R

--
Sent from: http://forum.openscad.org/

kintel wrote > (e.g. are the two representations isomorphic?, how do you compose larger > objects? how do you manage abstractions?) Perhaps the most eloquent response I can make is that I have no idea what you mean by that. You clearly know a great deal more about OpenSCAD and how 3D models can be represented. I see some very esoteric discussions on this Forum but I cannot conceive of what the models behind them will be used for.They seem to be much too complex for 3D printing as a single object. I have to say I get the impression (perhaps wrongly) that some people are trying to use OpenSCAD in situations where another CAD program would be more suitable. > * Bundling such an editor with OpenSCAD I don't see any need for it in the near term. What could be useful for beginners is a page that can be accessed from the Documentation index (http://www.openscad.org/documentation.html?version=2015.03) that has links to the various graphical front ends that are available and, perhaps, some guidance to help someone understand their differences and encourage people to try that approach to using OpenSCAD. Many thanks fr your interest, ...R -- Sent from: http://forum.openscad.org/
NH
nop head
Tue, Oct 29, 2019 9:27 AM

They seem to be much too complex for 3D printing as a single object.  I

have to say I get the impression (perhaps wrongly) that some people are
trying to use OpenSCAD in situations where another CAD program would be
more suitable.

Why should OpenSCAD be limited to describing single objects? Most of my
designs have multiple printed parts and dozens of vitamins. Why would
another CAD tool be more appropriate? I use OpenSCAD because I am a
programmer with CNC tools, not a mechanical designer. Perhaps if I was
designing something as complex as a 737 plane OpenSCAD would run out of
steam but it easily copes with anything I build. The most complex being 3D
printers with perhaps 2000 parts, 100 of them printed.

On Tue, 29 Oct 2019 at 08:41, Robin2 robin@nbleopard.com wrote:

kintel wrote

(e.g. are the two representations isomorphic?, how do you compose larger
objects? how do you manage abstractions?)

Perhaps the most eloquent response I can make is that I have no idea what
you mean by that. You clearly know a great deal more about OpenSCAD and how
3D models can be represented.

I see some very esoteric discussions on this Forum but I cannot conceive of
what the models behind them will be used for.They seem to be much too
complex for 3D printing as a single object. I have to say I get the
impression (perhaps wrongly) that some people are trying to use OpenSCAD in
situations where another CAD program would be more suitable.

  • Bundling such an editor with OpenSCAD

I don't see any need for it in the near term. What could be useful for
beginners is a page that can be accessed from the Documentation index
(http://www.openscad.org/documentation.html?version=2015.03) that has
links
to the various graphical front ends that are available and, perhaps, some
guidance to help someone understand their differences and encourage people
to try that approach to using OpenSCAD.

Many thanks fr your interest,

...R

--
Sent from: http://forum.openscad.org/


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

> They seem to be much too complex for 3D printing as a single object. I have to say I get the impression (perhaps wrongly) that some people are trying to use OpenSCAD in situations where another CAD program would be more suitable. Why should OpenSCAD be limited to describing single objects? Most of my designs have multiple printed parts and dozens of vitamins. Why would another CAD tool be more appropriate? I use OpenSCAD because I am a programmer with CNC tools, not a mechanical designer. Perhaps if I was designing something as complex as a 737 plane OpenSCAD would run out of steam but it easily copes with anything I build. The most complex being 3D printers with perhaps 2000 parts, 100 of them printed. On Tue, 29 Oct 2019 at 08:41, Robin2 <robin@nbleopard.com> wrote: > kintel wrote > > (e.g. are the two representations isomorphic?, how do you compose larger > > objects? how do you manage abstractions?) > > Perhaps the most eloquent response I can make is that I have no idea what > you mean by that. You clearly know a great deal more about OpenSCAD and how > 3D models can be represented. > > I see some very esoteric discussions on this Forum but I cannot conceive of > what the models behind them will be used for.They seem to be much too > complex for 3D printing as a single object. I have to say I get the > impression (perhaps wrongly) that some people are trying to use OpenSCAD in > situations where another CAD program would be more suitable. > > > > * Bundling such an editor with OpenSCAD > > I don't see any need for it in the near term. What could be useful for > beginners is a page that can be accessed from the Documentation index > (http://www.openscad.org/documentation.html?version=2015.03) that has > links > to the various graphical front ends that are available and, perhaps, some > guidance to help someone understand their differences and encourage people > to try that approach to using OpenSCAD. > > Many thanks fr your interest, > > ...R > > > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
R
Robin2
Tue, Oct 29, 2019 11:13 AM

nophead wrote

Why should OpenSCAD be limited to describing single objects? Most of my
designs have multiple printed parts and dozens of vitamins. Why would
another CAD tool be more appropriate?

I'm finding it difficult to explain myself.  Some of the discussions I see
here seem to involve very complex manipulations that, I suspect, would be
completely unnecessary and irrelevant in other CAD programs. It's just a
feeling I have that in some cases OpenSCAD is being pushed too far from its
essential simplicity. That's why I have been asking questions about the
intended "market" for OpenSCAD. If it gets too complicated I fear it will
lose its attraction for people who don't need a complex CAD system yet it
will still not match the capabilities of (say) FreeCad or SolveSpace.

I have no objection to people creating complex models. I reckon most of them
could be created with ClikScad (or Graphscad or Blocscad).

...R

--
Sent from: http://forum.openscad.org/

nophead wrote > Why should OpenSCAD be limited to describing single objects? Most of my > designs have multiple printed parts and dozens of vitamins. Why would > another CAD tool be more appropriate? I'm finding it difficult to explain myself. Some of the discussions I see here seem to involve very complex manipulations that, I suspect, would be completely unnecessary and irrelevant in other CAD programs. It's just a feeling I have that in some cases OpenSCAD is being pushed too far from its essential simplicity. That's why I have been asking questions about the intended "market" for OpenSCAD. If it gets too complicated I fear it will lose its attraction for people who don't need a complex CAD system yet it will still not match the capabilities of (say) FreeCad or SolveSpace. I have no objection to people creating complex models. I reckon most of them could be created with ClikScad (or Graphscad or Blocscad). ...R -- Sent from: http://forum.openscad.org/
TP
Torsten Paul
Tue, Oct 29, 2019 3:21 PM

On 24.10.19 19:27, WillAdams via Discuss wrote:

I have a URL I'd like to use for that --- designinto3d.com
but I'm kind of mystified by the whole web server hosting
thing. Even better would be if the server could run TeX/LaTeX
and serve up files thusly generated.

Do you plan to actually host a full service? Most of the
existing sites focus on the printing part of the workflow,
not so much the design.

ciao,
Torsten.

On 24.10.19 19:27, WillAdams via Discuss wrote: > I have a URL I'd like to use for that --- designinto3d.com > but I'm kind of mystified by the whole web server hosting > thing. Even better would be if the server could run TeX/LaTeX > and serve up files thusly generated. Do you plan to actually host a full service? Most of the existing sites focus on the printing part of the workflow, not so much the design. ciao, Torsten.
JB
Jordan Brown
Tue, Oct 29, 2019 4:37 PM

On 10/29/2019 4:13 AM, Robin2 wrote:

I'm finding it difficult to explain myself. Some of the discussions I
see here seem to involve very complex manipulations that, I suspect,
would be completely unnecessary and irrelevant in other CAD programs.
It's just a feeling I have that in some cases OpenSCAD is being pushed
too far from itsessential simplicity. That's why I have been asking
questions about the intended "market" for OpenSCAD. If it gets too
complicated I fear it will lose its attraction for people who don't
need a complex CAD system yet it will still not match the capabilities
of (say) FreeCad or SolveSpace.

Maybe I just haven't tried hard enough to learn those tools, but they
seem harder to use than OpenSCAD, for less functionality.  I did try
to learn Blender, and ... yuck.  If I was a sculptor it would be good,
maybe, but I'm not - I'm an engineer.  I've tried pretty hard to use
SketchUp, but it's a pain in the neck to do anything where you want
precise positioning, and it has zero capability for parameterization and
repetition.

So far, I can't see building any but the simplest of my models using a
point-and-click user interface.  I want to duplicate and parameterize
them too much.

I have no objection to people creating complex models. I reckon most of them
could be created with ClikScad (or Graphscad or Blocscad).

https://www.thingiverse.com/thing:2638382 is one of my first models.  I
can't imagine building it using a tool that would require positioning
each element.  I could come close to doing it in BlocksCAD, but it seems
like the mouse work involved would be much slower than the typing in
OpenSCAD, and the resulting program would be visually much larger.  And
I can't actually do it the way that I did it in OpenSCAD, because
BlocksCAD doesn't have any way to import drawings.

It's 49 lines of OpenSCAD, including comments, plus a DXF file for the
cross section.  (Today I'd do the Bezier curve directly in OpenSCAD, but
I didn't have the functions back then.)

Or even this stupid little rack for drying bottles:

In a typical point and click UI, if I decided the spacing was wrong I'd
nearly have to start from scratch.

I'm sure that the more elaborate CAD programs can handle this kind of
repetition and parameterization, but they come with their own
complexity.  I know how to write programs, and so writing programs is,
for me, the easy way to do it.

In fact, I'd say that answers your question about audience.  Just look
at the page title for openscad.org:

OpenSCAD - The Programmers Solid 3D CAD Modeller

The intended audience is programmers who want to do 3D modeling.

BTW, here's photos of some of my more recent and elaborate models:

'

On 10/29/2019 4:13 AM, Robin2 wrote: > I'm finding it difficult to explain myself. Some of the discussions I > see here seem to involve very complex manipulations that, I suspect, > would be completely unnecessary and irrelevant in other CAD programs. > It's just a feeling I have that in some cases OpenSCAD is being pushed > too far from itsessential simplicity. That's why I have been asking > questions about the intended "market" for OpenSCAD. If it gets too > complicated I fear it will lose its attraction for people who don't > need a complex CAD system yet it will still not match the capabilities > of (say) FreeCad or SolveSpace. Maybe I just haven't tried hard enough to learn those tools, but they seem harder to use than OpenSCAD, for less functionality.  I *did* try to learn Blender, and ... yuck.  If I was a sculptor it would be good, maybe, but I'm not - I'm an engineer.  I've tried pretty hard to use SketchUp, but it's a pain in the neck to do anything where you want precise positioning, and it has zero capability for parameterization and repetition. So far, I can't see building any but the simplest of my models using a point-and-click user interface.  I want to duplicate and parameterize them too much. > I have no objection to people creating complex models. I reckon most of them > could be created with ClikScad (or Graphscad or Blocscad). https://www.thingiverse.com/thing:2638382 is one of my first models.  I can't imagine building it using a tool that would require positioning each element.  I could come close to doing it in BlocksCAD, but it seems like the mouse work involved would be much slower than the typing in OpenSCAD, and the resulting program would be visually much larger.  And I can't actually do it the way that I did it in OpenSCAD, because BlocksCAD doesn't have any way to import drawings. It's 49 lines of OpenSCAD, including comments, plus a DXF file for the cross section.  (Today I'd do the Bezier curve directly in OpenSCAD, but I didn't have the functions back then.) Or even this stupid little rack for drying bottles: In a typical point and click UI, if I decided the spacing was wrong I'd nearly have to start from scratch. I'm sure that the more elaborate CAD programs can handle this kind of repetition and parameterization, but they come with their own complexity.  I know how to write programs, and so writing programs is, for me, the easy way to do it. In fact, I'd say that answers your question about audience.  Just look at the page title for openscad.org: OpenSCAD - The Programmers Solid 3D CAD Modeller The intended audience is programmers who want to do 3D modeling. BTW, here's photos of some of my more recent and elaborate models: '
DM
Doug Moen
Tue, Oct 29, 2019 9:18 PM

I'm finding it difficult to explain myself.  Some of the discussions I see
here seem to involve very complex manipulations that, I suspect, would be
completely unnecessary and irrelevant in other CAD programs. It's just a
feeling I have that in some cases OpenSCAD is being pushed too far from its
essential simplicity. That's why I have been asking questions about the
intended "market" for OpenSCAD. If it gets too complicated I fear it will
lose its attraction for people who don't need a complex CAD system yet it
will still not match the capabilities of (say) FreeCad or SolveSpace.

OpenSCAD has a very different style of creating 3D shapes, compared to freehand direct-manipulation modelling tools. This style of working can appeal to both novices and experts. We have both types of users in our community.

I would call this style Parametric, Procedural Design. The "Procedural" part means that you use an algorithm to generate the geometry, rather than positioning things by hand. The "Parametric" part means that your model has a set of high level numeric parameters that can be tweaked to generate variations on the design. The parameters are inputs to the algorithm, which preserves all of the invariants or requirements that the design is required to conform to, even as the parameter values change.

Procedural design gives you a large amount of precise control over the model. It can be used to generate lots of repetitive detail which nevertheless exhibits mathematically precise symmetry: just the sort of thing that you don't want to construct by hand. It's attractive to experts because of all the control you get over the output.

> I'm finding it difficult to explain myself. Some of the discussions I see > here seem to involve very complex manipulations that, I suspect, would be > completely unnecessary and irrelevant in other CAD programs. It's just a > feeling I have that in some cases OpenSCAD is being pushed too far from its > essential simplicity. That's why I have been asking questions about the > intended "market" for OpenSCAD. If it gets too complicated I fear it will > lose its attraction for people who don't need a complex CAD system yet it > will still not match the capabilities of (say) FreeCad or SolveSpace. OpenSCAD has a very different style of creating 3D shapes, compared to freehand direct-manipulation modelling tools. This style of working can appeal to both novices and experts. We have both types of users in our community. I would call this style Parametric, Procedural Design. The "Procedural" part means that you use an algorithm to generate the geometry, rather than positioning things by hand. The "Parametric" part means that your model has a set of high level numeric parameters that can be tweaked to generate variations on the design. The parameters are inputs to the algorithm, which preserves all of the invariants or requirements that the design is required to conform to, even as the parameter values change. Procedural design gives you a large amount of precise control over the model. It can be used to generate lots of repetitive detail which nevertheless exhibits mathematically precise symmetry: just the sort of thing that you don't want to construct by hand. It's attractive to experts because of all the control you get over the output.