discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: I discovered CadQuery

JB
Jordan Brown
Wed, Jan 17, 2024 4:19 AM

On 1/16/2024 7:11 PM, Jordan Brown wrote:

Is there some kind of middle ground?  Maybe.

Or maybe you could:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.
  • Have a click-y way to change those parameters.
  • Have a UI that lets you select any top-level object, and change its
    translation, rotation, and scale.  If there is an existing
    translate(...) rotate(...) scale(...) with constant arguments then
    update them, else add them.

This would only work on very stylized OpenSCAD programs, and it would
only let you do very simple things, and even then it's tricky because
the textual representation of a program isn't very amenable to
mechanical modification, but seems plausible.  (Even more so if the AST
maintains stuff like comments and spacing.  Not that that's trivial, but
it seems plausible.)

BTW, another droid that may be of interest is BlocksCAD
https://www.blockscad3d.com/, which is a block/flowchart presentation
of OpenSCAD.  I don't think it has any click-edit features, but it
avoids requiring the user to get syntax right.  (But note that it
doesn't let you edit the resulting OpenSCAD, so I suspect that it can't
take arbitrary OpenSCAD and turn it into block form.)

On 1/16/2024 7:11 PM, Jordan Brown wrote: > Is there some kind of middle ground?  Maybe. Or maybe you could: * Have a click-y way to add any existing module, parameterized, to the top level. * Have a click-y way to change those parameters. * Have a UI that lets you select any top-level object, and change its translation, rotation, and scale.  If there is an existing translate(...) rotate(...) scale(...) with constant arguments then update them, else add them. This would only work on very stylized OpenSCAD programs, and it would only let you do very simple things, and even then it's tricky because the textual representation of a program isn't very amenable to mechanical modification, but seems plausible.  (Even more so if the AST maintains stuff like comments and spacing.  Not that that's trivial, but it seems plausible.) BTW, another droid that may be of interest is BlocksCAD <https://www.blockscad3d.com/>, which is a block/flowchart presentation of OpenSCAD.  I don't think it has any click-edit features, but it avoids requiring the user to get syntax right.  (But note that it doesn't let you edit the resulting OpenSCAD, so I suspect that it can't take arbitrary OpenSCAD and turn it into block form.)
RW
Rogier Wolff
Wed, Jan 17, 2024 1:02 PM

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.

click new
/* unnamed.scad /
double click unnamed somewhere on screen. Type mymodule
/
mymodule.scad */
module mymodule ()
{
}
mymodule ();

click add cube
/* mymodule.scad */
module mymodule ()
{
cube (10);
}
mymodule ();

click change size, unclick locked checkbox
/* mymodule.scad */
module mymodule ()
{
cube ([10,10,10]);
}
mymodule ();

change the Y to 20, z to 30;
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
}
mymodule ();

click add submodule type "stud" in the "name?" popup.

/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
stud ();
}
mymodule ();

** Warning no module named stud

click on stud in the hierarchy view.
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
mymodule ();
** Warning no module named stud

double click on stud in the hierarchy view.

/* mymodule.scad */

module stud ()
{
}

module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
stud ();

/* editing module stud */

click add cylinder

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
stud ();
}
stud ();

/* editing module stud */
click edit-in-context

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
color ("green" /* green to highlight the active module*/) stud ();
}
mymodule ();

/* editing module stud */

etc. (I was going to change the diameter of the cylinder to 5, move it
down and then put 3 more copies inside mymodule at the other three
corners...)

Now, this may or may not be able to read generic openscad files. But
to me it doesn't sound impossible. If you first set the goals low,
like add objects and have them have constant sizes. This sounds like a
day-to-a-week project (depending on your toolset and experience with
creating menus and actions to go along). Just the basics! Keep in mind
that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

Of course you'd be missing out on many important openscad
features. But once the ball is rolling, you can start adding stuff
like parameters on modules, using those as parameters to submodules
etc etc.

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

Without openscad help, this would be a bit tedious. Make openscad
render the toplevel to an image in a file with a # in front of the
toplevel object, then search down and down the hierarchy by moving the

and see which submodules when prefaced with a # will keep turning

the pixel pink. If a render takes a few seconds, that can cost way too
long. You'd quickly want to move some of the required stuff into
openscad.

Anyway... those are my ideas on having a more "clicky" interface for
openscad. As that'd be intended for an audience that doesn't include
me, I'm afraid I'm not volunteering for making it... The usual!

Now off to editing the openscad model where the preview shows it will
fit, but 3d-printed-reality seems to be different...

Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: > * Have a click-y way to add any existing module, parameterized, to the > top level. I think much more is possible. click new /* unnamed.scad */ double click unnamed somewhere on screen. Type mymodule /* mymodule.scad */ module mymodule () { } mymodule (); click add cube /* mymodule.scad */ module mymodule () { cube (10); } mymodule (); click change size, unclick locked checkbox /* mymodule.scad */ module mymodule () { cube ([10,10,10]); } mymodule (); change the Y to 20, z to 30; /* mymodule.scad */ module mymodule () { cube ([10,20,30]); } mymodule (); click add submodule type "stud" in the "name?" popup. /* mymodule.scad */ module mymodule () { cube ([10,20,30]); stud (); } mymodule (); ** Warning no module named stud click on stud in the hierarchy view. /* mymodule.scad */ module mymodule () { cube ([10,20,30]); #stud (); } mymodule (); ** Warning no module named stud double click on stud in the hierarchy view. /* mymodule.scad */ module stud () { } module mymodule () { cube ([10,20,30]); #stud (); } stud (); /* editing module stud */ click add cylinder /* mymodule.scad */ module stud () { cylinder (d=10, h=10); } module mymodule () { cube ([10,20,30]); stud (); } stud (); /* editing module stud */ click edit-in-context /* mymodule.scad */ module stud () { cylinder (d=10, h=10); } module mymodule () { cube ([10,20,30]); color ("green" /* green to highlight the active module*/) stud (); } mymodule (); /* editing module stud */ etc. (I was going to change the diameter of the cylinder to 5, move it down and then put 3 more copies inside mymodule at the other three corners...) Now, this may or may not be able to read generic openscad files. But to me it doesn't sound impossible. If you first set the goals low, like add objects and have them have constant sizes. This sounds like a day-to-a-week project (depending on your toolset and experience with creating menus and actions to go along). Just the basics! Keep in mind that openscad is just being used as something to visualize the textfile that is being edited by the gui. Of course you'd be missing out on many important openscad features. But once the ball is rolling, you can start adding stuff like parameters on modules, using those as parameters to submodules etc etc. With some help from openscad, this could become even more useful. People like to select (sub)modules by pointing and clicking. So something that might need to be added to openscad is: "What object caused the pixel at x,y to be colored the way it is?". I think it would need to report the lowest level object that satisfies. The user should then be able to click "up" enough times to go up the hierarchy to find the proper Without openscad help, this would be a bit tedious. Make openscad render the toplevel to an image in a file with a # in front of the toplevel object, then search down and down the hierarchy by moving the # and see which submodules when prefaced with a # will keep turning the pixel pink. If a render takes a few seconds, that can cost way too long. You'd quickly want to move some of the required stuff into openscad. Anyway... those are my ideas on having a more "clicky" interface for openscad. As that'd be intended for an audience that doesn't include me, I'm afraid I'm not volunteering for making it... The usual! Now off to editing the openscad model where the preview shows it will fit, but 3d-printed-reality seems to be different... Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a is going up. -- Chris Hadfield about flying up the space shuttle.
ER
edmund ronald
Wed, Jan 17, 2024 2:03 PM

When I was a journalist, I interviewed an IBM exec and asked why there was
no GUI in their then current product line. His reply: « We aren’t children,
we don’t need mice ». If no one here understands that some  stuff is very
well done by numbers and other stuff by small adjustments by eye, eg if I
am typesetting a short poem and want to decide where to put it on the page,
I want to just slide it around the screen, then there is no point in a
continued discussion. I have no problem with the code part of OpenSCAD but
for some reason people here refuse to understand that occasionally the hand
and Mark I eyeball are really useful and effective tools.

Edmund

On Wednesday, January 17, 2024, Rogier Wolff via Discuss <
discuss@lists.openscad.org> wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.

click new
/* unnamed.scad /
double click unnamed somewhere on screen. Type mymodule
/
mymodule.scad */
module mymodule ()
{
}
mymodule ();

click add cube
/* mymodule.scad */
module mymodule ()
{
cube (10);
}
mymodule ();

click change size, unclick locked checkbox
/* mymodule.scad */
module mymodule ()
{
cube ([10,10,10]);
}
mymodule ();

change the Y to 20, z to 30;
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
}
mymodule ();

click add submodule type "stud" in the "name?" popup.

/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
stud ();
}
mymodule ();

** Warning no module named stud

click on stud in the hierarchy view.
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
mymodule ();
** Warning no module named stud

double click on stud in the hierarchy view.

/* mymodule.scad */

module stud ()
{
}

module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
stud ();

/* editing module stud */

click add cylinder

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
stud ();
}
stud ();

/* editing module stud */
click edit-in-context

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
color ("green" /* green to highlight the active module*/) stud ();
}
mymodule ();

/* editing module stud */

etc. (I was going to change the diameter of the cylinder to 5, move it
down and then put 3 more copies inside mymodule at the other three
corners...)

Now, this may or may not be able to read generic openscad files. But
to me it doesn't sound impossible. If you first set the goals low,
like add objects and have them have constant sizes. This sounds like a
day-to-a-week project (depending on your toolset and experience with
creating menus and actions to go along). Just the basics! Keep in mind
that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

Of course you'd be missing out on many important openscad
features. But once the ball is rolling, you can start adding stuff
like parameters on modules, using those as parameters to submodules
etc etc.

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

Without openscad help, this would be a bit tedious. Make openscad
render the toplevel to an image in a file with a # in front of the
toplevel object, then search down and down the hierarchy by moving the

and see which submodules when prefaced with a # will keep turning

the pixel pink. If a render takes a few seconds, that can cost way too
long. You'd quickly want to move some of the required stuff into
openscad.

Anyway... those are my ideas on having a more "clicky" interface for
openscad. As that'd be intended for an audience that doesn't include
me, I'm afraid I'm not volunteering for making it... The usual!

Now off to editing the openscad model where the preview shows it will
fit, but 3d-printed-reality seems to be different...

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

When I was a journalist, I interviewed an IBM exec and asked why there was no GUI in their then current product line. His reply: « We aren’t children, we don’t need mice ». If no one here understands that some stuff is very well done by numbers and other stuff by small adjustments by eye, eg if I am typesetting a short poem and want to decide where to put it on the page, I want to just slide it around the screen, then there is no point in a continued discussion. I have no problem with the code part of OpenSCAD but for some reason people here refuse to understand that occasionally the hand and Mark I eyeball are really useful and effective tools. Edmund On Wednesday, January 17, 2024, Rogier Wolff via Discuss < discuss@lists.openscad.org> wrote: > On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: > > * Have a click-y way to add any existing module, parameterized, to the > > top level. > > I think much more is possible. > > click new > /* unnamed.scad */ > double click unnamed somewhere on screen. Type mymodule > /* mymodule.scad */ > module mymodule () > { > } > mymodule (); > > click add cube > /* mymodule.scad */ > module mymodule () > { > cube (10); > } > mymodule (); > > click change size, unclick locked checkbox > /* mymodule.scad */ > module mymodule () > { > cube ([10,10,10]); > } > mymodule (); > > change the Y to 20, z to 30; > /* mymodule.scad */ > module mymodule () > { > cube ([10,20,30]); > } > mymodule (); > > click add submodule type "stud" in the "name?" popup. > > /* mymodule.scad */ > module mymodule () > { > cube ([10,20,30]); > stud (); > } > mymodule (); > > ** Warning no module named stud > > click on stud in the hierarchy view. > /* mymodule.scad */ > module mymodule () > { > cube ([10,20,30]); > #stud (); > } > mymodule (); > ** Warning no module named stud > > double click on stud in the hierarchy view. > > /* mymodule.scad */ > > module stud () > { > } > > module mymodule () > { > cube ([10,20,30]); > #stud (); > } > stud (); > > /* editing module stud */ > > click add cylinder > > /* mymodule.scad */ > > module stud () > { > cylinder (d=10, h=10); > } > > module mymodule () > { > cube ([10,20,30]); > stud (); > } > stud (); > > /* editing module stud */ > click edit-in-context > > /* mymodule.scad */ > > module stud () > { > cylinder (d=10, h=10); > } > > module mymodule () > { > cube ([10,20,30]); > color ("green" /* green to highlight the active module*/) stud (); > } > mymodule (); > > /* editing module stud */ > > > etc. (I was going to change the diameter of the cylinder to 5, move it > down and then put 3 more copies inside mymodule at the other three > corners...) > > Now, this may or may not be able to read generic openscad files. But > to me it doesn't sound impossible. If you first set the goals low, > like add objects and have them have constant sizes. This sounds like a > day-to-a-week project (depending on your toolset and experience with > creating menus and actions to go along). Just the basics! Keep in mind > that openscad is just being used as something to visualize the > textfile that is being edited by the gui. > > Of course you'd be missing out on many important openscad > features. But once the ball is rolling, you can start adding stuff > like parameters on modules, using those as parameters to submodules > etc etc. > > With some help from openscad, this could become even more > useful. People like to select (sub)modules by pointing and > clicking. So something that might need to be added to openscad is: > "What object caused the pixel at x,y to be colored the way it is?". I > think it would need to report the lowest level object that > satisfies. The user should then be able to click "up" enough times to > go up the hierarchy to find the proper > > Without openscad help, this would be a bit tedious. Make openscad > render the toplevel to an image in a file with a # in front of the > toplevel object, then search down and down the hierarchy by moving the > # and see which submodules when prefaced with a # will keep turning > the pixel pink. If a render takes a few seconds, that can cost way too > long. You'd quickly want to move some of the required stuff into > openscad. > > Anyway... those are my ideas on having a more "clicky" interface for > openscad. As that'd be intended for an audience that doesn't include > me, I'm afraid I'm not volunteering for making it... The usual! > > Now off to editing the openscad model where the preview shows it will > fit, but 3d-printed-reality seems to be different... > > Roger. > > -- > ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 > ** > ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** > f equals m times a. When your f is steady, and your m is going down > your a is going up. -- Chris Hadfield about flying up the space shuttle. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
NH
nop head
Wed, Jan 17, 2024 2:13 PM

Since OpenSCAD supports Python and CadQuery is written in Python is
possible to use CQ inside OpenSCAD?

On Wed, 17 Jan 2024, 14:04 edmund ronald via Discuss, <
discuss@lists.openscad.org> wrote:

When I was a journalist, I interviewed an IBM exec and asked why there was
no GUI in their then current product line. His reply: « We aren’t children,
we don’t need mice ». If no one here understands that some  stuff is very
well done by numbers and other stuff by small adjustments by eye, eg if I
am typesetting a short poem and want to decide where to put it on the page,
I want to just slide it around the screen, then there is no point in a
continued discussion. I have no problem with the code part of OpenSCAD but
for some reason people here refuse to understand that occasionally the hand
and Mark I eyeball are really useful and effective tools.

Edmund

On Wednesday, January 17, 2024, Rogier Wolff via Discuss <
discuss@lists.openscad.org> wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.

click new
/* unnamed.scad /
double click unnamed somewhere on screen. Type mymodule
/
mymodule.scad */
module mymodule ()
{
}
mymodule ();

click add cube
/* mymodule.scad */
module mymodule ()
{
cube (10);
}
mymodule ();

click change size, unclick locked checkbox
/* mymodule.scad */
module mymodule ()
{
cube ([10,10,10]);
}
mymodule ();

change the Y to 20, z to 30;
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
}
mymodule ();

click add submodule type "stud" in the "name?" popup.

/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
stud ();
}
mymodule ();

** Warning no module named stud

click on stud in the hierarchy view.
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
mymodule ();
** Warning no module named stud

double click on stud in the hierarchy view.

/* mymodule.scad */

module stud ()
{
}

module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
stud ();

/* editing module stud */

click add cylinder

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
stud ();
}
stud ();

/* editing module stud */
click edit-in-context

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
color ("green" /* green to highlight the active module*/) stud ();
}
mymodule ();

/* editing module stud */

etc. (I was going to change the diameter of the cylinder to 5, move it
down and then put 3 more copies inside mymodule at the other three
corners...)

Now, this may or may not be able to read generic openscad files. But
to me it doesn't sound impossible. If you first set the goals low,
like add objects and have them have constant sizes. This sounds like a
day-to-a-week project (depending on your toolset and experience with
creating menus and actions to go along). Just the basics! Keep in mind
that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

Of course you'd be missing out on many important openscad
features. But once the ball is rolling, you can start adding stuff
like parameters on modules, using those as parameters to submodules
etc etc.

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

Without openscad help, this would be a bit tedious. Make openscad
render the toplevel to an image in a file with a # in front of the
toplevel object, then search down and down the hierarchy by moving the

and see which submodules when prefaced with a # will keep turning

the pixel pink. If a render takes a few seconds, that can cost way too
long. You'd quickly want to move some of the required stuff into
openscad.

Anyway... those are my ideas on having a more "clicky" interface for
openscad. As that'd be intended for an audience that doesn't include
me, I'm afraid I'm not volunteering for making it... The usual!

Now off to editing the openscad model where the preview shows it will
fit, but 3d-printed-reality seems to be different...

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233
**
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Since OpenSCAD supports Python and CadQuery is written in Python is possible to use CQ inside OpenSCAD? On Wed, 17 Jan 2024, 14:04 edmund ronald via Discuss, < discuss@lists.openscad.org> wrote: > When I was a journalist, I interviewed an IBM exec and asked why there was > no GUI in their then current product line. His reply: « We aren’t children, > we don’t need mice ». If no one here understands that some stuff is very > well done by numbers and other stuff by small adjustments by eye, eg if I > am typesetting a short poem and want to decide where to put it on the page, > I want to just slide it around the screen, then there is no point in a > continued discussion. I have no problem with the code part of OpenSCAD but > for some reason people here refuse to understand that occasionally the hand > and Mark I eyeball are really useful and effective tools. > > Edmund > > On Wednesday, January 17, 2024, Rogier Wolff via Discuss < > discuss@lists.openscad.org> wrote: > >> On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: >> > * Have a click-y way to add any existing module, parameterized, to the >> > top level. >> >> I think much more is possible. >> >> click new >> /* unnamed.scad */ >> double click unnamed somewhere on screen. Type mymodule >> /* mymodule.scad */ >> module mymodule () >> { >> } >> mymodule (); >> >> click add cube >> /* mymodule.scad */ >> module mymodule () >> { >> cube (10); >> } >> mymodule (); >> >> click change size, unclick locked checkbox >> /* mymodule.scad */ >> module mymodule () >> { >> cube ([10,10,10]); >> } >> mymodule (); >> >> change the Y to 20, z to 30; >> /* mymodule.scad */ >> module mymodule () >> { >> cube ([10,20,30]); >> } >> mymodule (); >> >> click add submodule type "stud" in the "name?" popup. >> >> /* mymodule.scad */ >> module mymodule () >> { >> cube ([10,20,30]); >> stud (); >> } >> mymodule (); >> >> ** Warning no module named stud >> >> click on stud in the hierarchy view. >> /* mymodule.scad */ >> module mymodule () >> { >> cube ([10,20,30]); >> #stud (); >> } >> mymodule (); >> ** Warning no module named stud >> >> double click on stud in the hierarchy view. >> >> /* mymodule.scad */ >> >> module stud () >> { >> } >> >> module mymodule () >> { >> cube ([10,20,30]); >> #stud (); >> } >> stud (); >> >> /* editing module stud */ >> >> click add cylinder >> >> /* mymodule.scad */ >> >> module stud () >> { >> cylinder (d=10, h=10); >> } >> >> module mymodule () >> { >> cube ([10,20,30]); >> stud (); >> } >> stud (); >> >> /* editing module stud */ >> click edit-in-context >> >> /* mymodule.scad */ >> >> module stud () >> { >> cylinder (d=10, h=10); >> } >> >> module mymodule () >> { >> cube ([10,20,30]); >> color ("green" /* green to highlight the active module*/) stud (); >> } >> mymodule (); >> >> /* editing module stud */ >> >> >> etc. (I was going to change the diameter of the cylinder to 5, move it >> down and then put 3 more copies inside mymodule at the other three >> corners...) >> >> Now, this may or may not be able to read generic openscad files. But >> to me it doesn't sound impossible. If you first set the goals low, >> like add objects and have them have constant sizes. This sounds like a >> day-to-a-week project (depending on your toolset and experience with >> creating menus and actions to go along). Just the basics! Keep in mind >> that openscad is just being used as something to visualize the >> textfile that is being edited by the gui. >> >> Of course you'd be missing out on many important openscad >> features. But once the ball is rolling, you can start adding stuff >> like parameters on modules, using those as parameters to submodules >> etc etc. >> >> With some help from openscad, this could become even more >> useful. People like to select (sub)modules by pointing and >> clicking. So something that might need to be added to openscad is: >> "What object caused the pixel at x,y to be colored the way it is?". I >> think it would need to report the lowest level object that >> satisfies. The user should then be able to click "up" enough times to >> go up the hierarchy to find the proper >> >> Without openscad help, this would be a bit tedious. Make openscad >> render the toplevel to an image in a file with a # in front of the >> toplevel object, then search down and down the hierarchy by moving the >> # and see which submodules when prefaced with a # will keep turning >> the pixel pink. If a render takes a few seconds, that can cost way too >> long. You'd quickly want to move some of the required stuff into >> openscad. >> >> Anyway... those are my ideas on having a more "clicky" interface for >> openscad. As that'd be intended for an audience that doesn't include >> me, I'm afraid I'm not volunteering for making it... The usual! >> >> Now off to editing the openscad model where the preview shows it will >> fit, but 3d-printed-reality seems to be different... >> >> Roger. >> >> -- >> ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 >> ** >> ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 >> ** >> f equals m times a. When your f is steady, and your m is going down >> your a is going up. -- Chris Hadfield about flying up the space shuttle. >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GS
Guenther Sohler
Wed, Jan 17, 2024 2:32 PM

yes of course!

look into this:

[image: image.png]

build123d is a modern API for CadQuery, but I am confident  that it also
works with cadquery itself.

of course  this depends  on python getting eventually merged any time in
the future

On Wed, Jan 17, 2024 at 3:14 PM nop head via Discuss <
discuss@lists.openscad.org> wrote:

Since OpenSCAD supports Python and CadQuery is written in Python is
possible to use CQ inside OpenSCAD?

On Wed, 17 Jan 2024, 14:04 edmund ronald via Discuss, <
discuss@lists.openscad.org> wrote:

When I was a journalist, I interviewed an IBM exec and asked why there
was no GUI in their then current product line. His reply: « We aren’t
children, we don’t need mice ». If no one here understands that some  stuff
is very well done by numbers and other stuff by small adjustments by eye,
eg if I am typesetting a short poem and want to decide where to put it on
the page, I want to just slide it around the screen, then there is no point
in a continued discussion. I have no problem with the code part of OpenSCAD
but for some reason people here refuse to understand that occasionally the
hand and Mark I eyeball are really useful and effective tools.

Edmund

On Wednesday, January 17, 2024, Rogier Wolff via Discuss <
discuss@lists.openscad.org> wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to

the

 top level.

I think much more is possible.

click new
/* unnamed.scad /
double click unnamed somewhere on screen. Type mymodule
/
mymodule.scad */
module mymodule ()
{
}
mymodule ();

click add cube
/* mymodule.scad */
module mymodule ()
{
cube (10);
}
mymodule ();

click change size, unclick locked checkbox
/* mymodule.scad */
module mymodule ()
{
cube ([10,10,10]);
}
mymodule ();

change the Y to 20, z to 30;
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
}
mymodule ();

click add submodule type "stud" in the "name?" popup.

/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
stud ();
}
mymodule ();

** Warning no module named stud

click on stud in the hierarchy view.
/* mymodule.scad */
module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
mymodule ();
** Warning no module named stud

double click on stud in the hierarchy view.

/* mymodule.scad */

module stud ()
{
}

module mymodule ()
{
cube ([10,20,30]);
#stud ();
}
stud ();

/* editing module stud */

click add cylinder

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
stud ();
}
stud ();

/* editing module stud */
click edit-in-context

/* mymodule.scad */

module stud ()
{
cylinder (d=10, h=10);
}

module mymodule ()
{
cube ([10,20,30]);
color ("green" /* green to highlight the active module*/) stud ();
}
mymodule ();

/* editing module stud */

etc. (I was going to change the diameter of the cylinder to 5, move it
down and then put 3 more copies inside mymodule at the other three
corners...)

Now, this may or may not be able to read generic openscad files. But
to me it doesn't sound impossible. If you first set the goals low,
like add objects and have them have constant sizes. This sounds like a
day-to-a-week project (depending on your toolset and experience with
creating menus and actions to go along). Just the basics! Keep in mind
that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

Of course you'd be missing out on many important openscad
features. But once the ball is rolling, you can start adding stuff
like parameters on modules, using those as parameters to submodules
etc etc.

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

Without openscad help, this would be a bit tedious. Make openscad
render the toplevel to an image in a file with a # in front of the
toplevel object, then search down and down the hierarchy by moving the

and see which submodules when prefaced with a # will keep turning

the pixel pink. If a render takes a few seconds, that can cost way too
long. You'd quickly want to move some of the required stuff into
openscad.

Anyway... those are my ideas on having a more "clicky" interface for
openscad. As that'd be intended for an audience that doesn't include
me, I'm afraid I'm not volunteering for making it... The usual!

Now off to editing the openscad model where the preview shows it will
fit, but 3d-printed-reality seems to be different...

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ **
+31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233
**
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

yes of course! look into this: [image: image.png] build123d is a modern API for CadQuery, but I am confident that it also works with cadquery itself. of course this depends on python getting eventually merged any time in the future On Wed, Jan 17, 2024 at 3:14 PM nop head via Discuss < discuss@lists.openscad.org> wrote: > Since OpenSCAD supports Python and CadQuery is written in Python is > possible to use CQ inside OpenSCAD? > > On Wed, 17 Jan 2024, 14:04 edmund ronald via Discuss, < > discuss@lists.openscad.org> wrote: > >> When I was a journalist, I interviewed an IBM exec and asked why there >> was no GUI in their then current product line. His reply: « We aren’t >> children, we don’t need mice ». If no one here understands that some stuff >> is very well done by numbers and other stuff by small adjustments by eye, >> eg if I am typesetting a short poem and want to decide where to put it on >> the page, I want to just slide it around the screen, then there is no point >> in a continued discussion. I have no problem with the code part of OpenSCAD >> but for some reason people here refuse to understand that occasionally the >> hand and Mark I eyeball are really useful and effective tools. >> >> Edmund >> >> On Wednesday, January 17, 2024, Rogier Wolff via Discuss < >> discuss@lists.openscad.org> wrote: >> >>> On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: >>> > * Have a click-y way to add any existing module, parameterized, to >>> the >>> > top level. >>> >>> I think much more is possible. >>> >>> click new >>> /* unnamed.scad */ >>> double click unnamed somewhere on screen. Type mymodule >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> } >>> mymodule (); >>> >>> click add cube >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> cube (10); >>> } >>> mymodule (); >>> >>> click change size, unclick locked checkbox >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> cube ([10,10,10]); >>> } >>> mymodule (); >>> >>> change the Y to 20, z to 30; >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> } >>> mymodule (); >>> >>> click add submodule type "stud" in the "name?" popup. >>> >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> stud (); >>> } >>> mymodule (); >>> >>> ** Warning no module named stud >>> >>> click on stud in the hierarchy view. >>> /* mymodule.scad */ >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> #stud (); >>> } >>> mymodule (); >>> ** Warning no module named stud >>> >>> double click on stud in the hierarchy view. >>> >>> /* mymodule.scad */ >>> >>> module stud () >>> { >>> } >>> >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> #stud (); >>> } >>> stud (); >>> >>> /* editing module stud */ >>> >>> click add cylinder >>> >>> /* mymodule.scad */ >>> >>> module stud () >>> { >>> cylinder (d=10, h=10); >>> } >>> >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> stud (); >>> } >>> stud (); >>> >>> /* editing module stud */ >>> click edit-in-context >>> >>> /* mymodule.scad */ >>> >>> module stud () >>> { >>> cylinder (d=10, h=10); >>> } >>> >>> module mymodule () >>> { >>> cube ([10,20,30]); >>> color ("green" /* green to highlight the active module*/) stud (); >>> } >>> mymodule (); >>> >>> /* editing module stud */ >>> >>> >>> etc. (I was going to change the diameter of the cylinder to 5, move it >>> down and then put 3 more copies inside mymodule at the other three >>> corners...) >>> >>> Now, this may or may not be able to read generic openscad files. But >>> to me it doesn't sound impossible. If you first set the goals low, >>> like add objects and have them have constant sizes. This sounds like a >>> day-to-a-week project (depending on your toolset and experience with >>> creating menus and actions to go along). Just the basics! Keep in mind >>> that openscad is just being used as something to visualize the >>> textfile that is being edited by the gui. >>> >>> Of course you'd be missing out on many important openscad >>> features. But once the ball is rolling, you can start adding stuff >>> like parameters on modules, using those as parameters to submodules >>> etc etc. >>> >>> With some help from openscad, this could become even more >>> useful. People like to select (sub)modules by pointing and >>> clicking. So something that might need to be added to openscad is: >>> "What object caused the pixel at x,y to be colored the way it is?". I >>> think it would need to report the lowest level object that >>> satisfies. The user should then be able to click "up" enough times to >>> go up the hierarchy to find the proper >>> >>> Without openscad help, this would be a bit tedious. Make openscad >>> render the toplevel to an image in a file with a # in front of the >>> toplevel object, then search down and down the hierarchy by moving the >>> # and see which submodules when prefaced with a # will keep turning >>> the pixel pink. If a render takes a few seconds, that can cost way too >>> long. You'd quickly want to move some of the required stuff into >>> openscad. >>> >>> Anyway... those are my ideas on having a more "clicky" interface for >>> openscad. As that'd be intended for an audience that doesn't include >>> me, I'm afraid I'm not volunteering for making it... The usual! >>> >>> Now off to editing the openscad model where the preview shows it will >>> fit, but 3d-printed-reality seems to be different... >>> >>> Roger. >>> >>> -- >>> ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** >>> +31-15-2049110 ** >>> ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 >>> ** >>> f equals m times a. When your f is steady, and your m is going down >>> your a is going up. -- Chris Hadfield about flying up the space shuttle. >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GB
Glenn Butcher
Wed, Jan 17, 2024 3:30 PM

So, I discovered OpenSCAD about a year ago when I was exploring using
resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd
abandoned metalwork at the time, too capital-intensive for my budget,
and the promise of 3D printing was too hard to ignore.  I started
modeling parts with various tools, and rapidly settled on OpenSCAD
because 1) it was free and 2) its script-foundation clicked with my
experience as a writer of computer programs.

What I found modeling steam locomotive parts was that there were a LOT
of chamfers and fillets, seemed to be a thing in the 1880s :D.  What I
also found was that extruding 2D profiles was easily done in OpenSCAD,
and the Round-Anything/polyround.scad did a great job of rounding
corners that needed such treatment.  So, my profiles became arrays of
triples, where the third element of the triple was a radius that
polyround() used to replace the point with a set of points describing
the curve.  Sweet...  Never in my construction of D&RG #168 did I
discover a need for a chamfer or fillet that required the use of a
parametric model of such.

I did run into a couple of really challenging parts, requiring a
Rube-Goldberg amalgam of tools.  The hangar for the bell, a rather
ornate-shaped thing, ended up being a set of profiles that were rounded
with polyround() and then fed into a path_extrude() script I found at
Thingiverse.  I knew BOSL2 would give me the tools to do this, but by
this time I'd become comfortable with the alternate tools and an earlier
experience with BOSL2 building rounded cab roof led me to the conclusion
that I should have started with BOSL2, wasn't going to go back and re-do
the stuff I'd already done.  So there.

To pull this into the "I discovered CadQuery" thread, good on that, but
it doesn't mean it's the only way to get things done. And, it doesn't
mean that a way in plain OpenSCAD is just too cumbersome, just maybe
cumbersome to some.  I have a short joke about this: Two guys on a
train, occasionally the window person would look out the window, pause,
and mutter a number: "129... 235... 32.....".  Guy on the aisle: "What
are you doing?" Window guy: "Counting cows."  Aisle guy: "Geesh, how do
you do that?" Window guy: "Easy.  I just count the number of legs and
divide by four..."  :D

The OpenSCAD toolbox by itself is quite powerful.  I'll bet CADQuery is
the same.  Whatever...

Glenn Butcher

On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote:

When I was a journalist, I interviewed an IBM exec and asked why there
was no GUI in their then current product line. His reply: « We aren’t
children, we don’t need mice ». If no one here understands that some
 stuff is very well done by numbers and other stuff by small
adjustments by eye, eg if I am typesetting a short poem and want to
decide where to put it on the page, I want to just slide it around the
screen, then there is no point in a continued discussion. I have no
problem with the code part of OpenSCAD but for some reason people here
refuse to understand that occasionally the hand and Mark I eyeball are
really useful and effective tools.

Edmund

So, I discovered OpenSCAD about a year ago when I was exploring using resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd abandoned metalwork at the time, too capital-intensive for my budget, and the promise of 3D printing was too hard to ignore.  I started modeling parts with various tools, and rapidly settled on OpenSCAD because 1) it was free and 2) its script-foundation clicked with my experience as a writer of computer programs. What I found modeling steam locomotive parts was that there were a LOT of chamfers and fillets, seemed to be a thing in the 1880s :D.  What I also found was that extruding 2D profiles was easily done in OpenSCAD, and the Round-Anything/polyround.scad did a great job of rounding corners that needed such treatment.  So, my profiles became arrays of triples, where the third element of the triple was a radius that polyround() used to replace the point with a set of points describing the curve.  Sweet...  Never in my construction of D&RG #168 did I discover a need for a chamfer or fillet that required the use of a parametric model of such. I did run into a couple of really challenging parts, requiring a Rube-Goldberg amalgam of tools.  The hangar for the bell, a rather ornate-shaped thing, ended up being a set of profiles that were rounded with polyround() and then fed into a path_extrude() script I found at Thingiverse.  I knew BOSL2 would give me the tools to do this, but by this time I'd become comfortable with the alternate tools and an earlier experience with BOSL2 building rounded cab roof led me to the conclusion that I should have started with BOSL2, wasn't going to go back and re-do the stuff I'd already done.  So there. To pull this into the "I discovered CadQuery" thread, good on that, but it doesn't mean it's the only way to get things done. And, it doesn't mean that a way in plain OpenSCAD is just too cumbersome, just maybe cumbersome to some.  I have a short joke about this: Two guys on a train, occasionally the window person would look out the window, pause, and mutter a number: "129... 235... 32.....".  Guy on the aisle: "What are you doing?" Window guy: "Counting cows."  Aisle guy: "Geesh, how do you do that?" Window guy: "Easy.  I just count the number of legs and divide by four..."  :D The OpenSCAD toolbox by itself is quite powerful.  I'll bet CADQuery is the same.  Whatever... Glenn Butcher On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote: > When I was a journalist, I interviewed an IBM exec and asked why there > was no GUI in their then current product line. His reply: « We aren’t > children, we don’t need mice ». If no one here understands that some >  stuff is very well done by numbers and other stuff by small > adjustments by eye, eg if I am typesetting a short poem and want to > decide where to put it on the page, I want to just slide it around the > screen, then there is no point in a continued discussion. I have no > problem with the code part of OpenSCAD but for some reason people here > refuse to understand that occasionally the hand and Mark I eyeball are > really useful and effective tools. > > Edmund
FH
Father Horton
Wed, Jan 17, 2024 7:19 PM

I have no problem with the code part of OpenSCAD but for some reason
people here refuse to understand that occasionally the hand and Mark I
eyeball are really useful and effective tools.

Is it a matter of refusing to understand that, or a matter that no one who
has the technical skills to make it happen is interested in doing so?

On Wed, Jan 17, 2024 at 9:30 AM Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

So, I discovered OpenSCAD about a year ago when I was exploring using
resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd
abandoned metalwork at the time, too capital-intensive for my budget, and
the promise of 3D printing was too hard to ignore.  I started modeling
parts with various tools, and rapidly settled on OpenSCAD because 1) it was
free and 2) its script-foundation clicked with my experience as a writer of
computer programs.

What I found modeling steam locomotive parts was that there were a LOT of
chamfers and fillets, seemed to be a thing in the 1880s :D.  What I also
found was that extruding 2D profiles was easily done in OpenSCAD, and the
Round-Anything/polyround.scad did a great job of rounding corners that
needed such treatment.  So, my profiles became arrays of triples, where the
third element of the triple was a radius that polyround() used to replace
the point with a set of points describing the curve.  Sweet...  Never in my
construction of D&RG #168 did I discover a need for a chamfer or fillet
that required the use of a parametric model of such.

I did run into a couple of really challenging parts, requiring a
Rube-Goldberg amalgam of tools.  The hangar for the bell, a rather
ornate-shaped thing, ended up being a set of profiles that were rounded
with polyround() and then fed into a path_extrude() script I found at
Thingiverse.  I knew BOSL2 would give me the tools to do this, but by this
time I'd become comfortable with the alternate tools and an earlier
experience with BOSL2 building rounded cab roof led me to the conclusion
that I should have started with BOSL2, wasn't going to go back and re-do
the stuff I'd already done.  So there.

To pull this into the "I discovered CadQuery" thread, good on that, but it
doesn't mean it's the only way to get things done.  And, it doesn't mean
that a way in plain OpenSCAD is just too cumbersome, just maybe cumbersome
to some.  I have a short joke about this: Two guys on a train, occasionally
the window person would look out the window, pause, and mutter a number:
"129...    235... 32.....".  Guy on the aisle: "What are you doing?"
Window guy: "Counting cows."  Aisle guy: "Geesh, how do you do that?"
Window guy: "Easy.  I just count the number of legs and divide by four..."
:D

The OpenSCAD toolbox by itself is quite powerful.  I'll bet CADQuery is
the same.  Whatever...

Glenn Butcher
On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote:

When I was a journalist, I interviewed an IBM exec and asked why there was
no GUI in their then current product line. His reply: « We aren’t children,
we don’t need mice ». If no one here understands that some  stuff is very
well done by numbers and other stuff by small adjustments by eye, eg if I
am typesetting a short poem and want to decide where to put it on the page,
I want to just slide it around the screen, then there is no point in a
continued discussion. I have no problem with the code part of OpenSCAD but
for some reason people here refuse to understand that occasionally the hand
and Mark I eyeball are really useful and effective tools.

Edmund


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

> > I have no problem with the code part of OpenSCAD but for some reason > people here refuse to understand that occasionally the hand and Mark I > eyeball are really useful and effective tools. > Is it a matter of refusing to understand that, or a matter that no one who has the technical skills to make it happen is interested in doing so? On Wed, Jan 17, 2024 at 9:30 AM Glenn Butcher via Discuss < discuss@lists.openscad.org> wrote: > So, I discovered OpenSCAD about a year ago when I was exploring using > resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd > abandoned metalwork at the time, too capital-intensive for my budget, and > the promise of 3D printing was too hard to ignore. I started modeling > parts with various tools, and rapidly settled on OpenSCAD because 1) it was > free and 2) its script-foundation clicked with my experience as a writer of > computer programs. > > What I found modeling steam locomotive parts was that there were a LOT of > chamfers and fillets, seemed to be a thing in the 1880s :D. What I also > found was that extruding 2D profiles was easily done in OpenSCAD, and the > Round-Anything/polyround.scad did a great job of rounding corners that > needed such treatment. So, my profiles became arrays of triples, where the > third element of the triple was a radius that polyround() used to replace > the point with a set of points describing the curve. Sweet... Never in my > construction of D&RG #168 did I discover a need for a chamfer or fillet > that required the use of a parametric model of such. > > I did run into a couple of really challenging parts, requiring a > Rube-Goldberg amalgam of tools. The hangar for the bell, a rather > ornate-shaped thing, ended up being a set of profiles that were rounded > with polyround() and then fed into a path_extrude() script I found at > Thingiverse. I knew BOSL2 would give me the tools to do this, but by this > time I'd become comfortable with the alternate tools and an earlier > experience with BOSL2 building rounded cab roof led me to the conclusion > that I should have started with BOSL2, wasn't going to go back and re-do > the stuff I'd already done. So there. > > To pull this into the "I discovered CadQuery" thread, good on that, but it > doesn't mean it's the only way to get things done. And, it doesn't mean > that a way in plain OpenSCAD is just too cumbersome, just maybe cumbersome > to some. I have a short joke about this: Two guys on a train, occasionally > the window person would look out the window, pause, and mutter a number: > "129... 235... 32.....". Guy on the aisle: "What are you doing?" > Window guy: "Counting cows." Aisle guy: "Geesh, how do you do that?" > Window guy: "Easy. I just count the number of legs and divide by four..." > :D > > The OpenSCAD toolbox by itself is quite powerful. I'll bet CADQuery is > the same. Whatever... > > Glenn Butcher > On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote: > > When I was a journalist, I interviewed an IBM exec and asked why there was > no GUI in their then current product line. His reply: « We aren’t children, > we don’t need mice ». If no one here understands that some stuff is very > well done by numbers and other stuff by small adjustments by eye, eg if I > am typesetting a short poem and want to decide where to put it on the page, > I want to just slide it around the screen, then there is no point in a > continued discussion. I have no problem with the code part of OpenSCAD but > for some reason people here refuse to understand that occasionally the hand > and Mark I eyeball are really useful and effective tools. > > Edmund > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
WF
William F. Adams
Wed, Jan 17, 2024 7:20 PM

On Tuesday, January 16, 2024 at 11:19:35 PM EST, Jordan Brown via Discuss discuss@lists.openscad.org wrote:

BTW, another droid that may be of interest is BlocksCAD, which is a block/flowchart presentation of OpenSCAD.  >I don't think it has any click-edit features, but it avoids requiring the user to get syntax right.  (But note that it doesn't >let you edit the resulting OpenSCAD, so I suspect that it can't take arbitrary OpenSCAD and turn it into block form.)

One of my favourites!
In addition to that there is:
https://github.com/derkork/openscad-graph-editor

which I have been using with great success.
William

On Tuesday, January 16, 2024 at 11:19:35 PM EST, Jordan Brown via Discuss <discuss@lists.openscad.org> wrote: >BTW, another droid that may be of interest is BlocksCAD, which is a block/flowchart presentation of OpenSCAD.  >I don't think it has any click-edit features, but it avoids requiring the user to get syntax right.  (But note that it doesn't >let you edit the resulting OpenSCAD, so I suspect that it can't take arbitrary OpenSCAD and turn it into block form.) One of my favourites! In addition to that there is: https://github.com/derkork/openscad-graph-editor which I have been using with great success. William
JB
Jordan Brown
Wed, Jan 17, 2024 7:51 PM

On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.
[ ... what you might call click-assisted editing ... ]

Well, yeah... but were any of those clicks on the model in the view area?

Yes, there could certainly be click/menu-assisted editing, largely in
the form of what you might call macros or templates.  We have some of
that today:  right click, insert template.  It's not as powerful as what
you suggest: it doesn't help edit parameters, and it doesn't keep track
of symbols and offer you your own modules.  That kind of assisted
editing seems applicable to any programming language.

But my impression is that that's not what people are talking about when
they talk about GUI interfaces to modeling.

Keep in mind that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

I don't think that's what the people who occasional ask for this kind of
thing are thinking of.  I think they'd rather hide the editor pane and
work only with the view pane.  (But I'm not one of them, so maybe I
misread their desires.)

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

There is some of that today, with the ability to right-click on the
model in the view pane and get the stack and click on the desired
level.  That will show you all of the "color" invocations that fed into
that pixel.

On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote: > On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: >> * Have a click-y way to add any existing module, parameterized, to the >> top level. > I think much more is possible. > [ ... what you might call click-assisted editing ... ] Well, yeah... but were any of those clicks on the model in the view area? Yes, there could certainly be click/menu-assisted editing, largely in the form of what you might call macros or templates.  We have some of that today:  right click, insert template.  It's not as powerful as what you suggest: it doesn't help edit parameters, and it doesn't keep track of symbols and offer you your own modules.  That kind of assisted editing seems applicable to any programming language. But my impression is that that's not what people are talking about when they talk about GUI interfaces to modeling. > Keep in mind that openscad is just being used as something to visualize the > textfile that is being edited by the gui. I don't think that's what the people who occasional ask for this kind of thing are thinking of.  I think they'd rather hide the editor pane and work only with the view pane.  (But I'm not one of them, so maybe I misread their desires.) > With some help from openscad, this could become even more > useful. People like to select (sub)modules by pointing and > clicking. So something that might need to be added to openscad is: > "What object caused the pixel at x,y to be colored the way it is?". I > think it would need to report the lowest level object that > satisfies. The user should then be able to click "up" enough times to > go up the hierarchy to find the proper There is some of that today, with the ability to right-click on the model in the view pane and get the stack and click on the desired level.  That will show you all of the "color" invocations that fed into that pixel.
JB
Jordan Brown
Wed, Jan 17, 2024 8:27 PM

On 1/17/2024 6:03 AM, edmund ronald via Discuss wrote:

I have no problem with the code part of OpenSCAD but for some reason
people here refuse to understand that occasionally the hand and Mark I
eyeball are really useful and effective tools.

Absolutely.

But there's also a "right tool for the job" question.  OpenSCAD, by its
nature, is quite hostile to hand-and-eye, click-and-drag style
modification.  It isn't that people just haven't done the work to
support click-and-drag modification... it's that it isn't even clear
what click-and-drag modification would mean.

There is no shame in, for instance, using Inkscape to trace images. 
That's how I made most of the tool outlines for the tool holders for my
tool drawer, and how I got the outline of several bathtubs that I modeled.

OpenSCAD simply isn't the right tool for all people, or for all tasks. 
For most people I know, I would recommend other tools.  (Big plug for
Gravity Sketch on Oculus Quest, by far the most usable 3D editor I've seen.)

On 1/17/2024 6:03 AM, edmund ronald via Discuss wrote: > I have no problem with the code part of OpenSCAD but for some reason > people here refuse to understand that occasionally the hand and Mark I > eyeball are really useful and effective tools. Absolutely. But there's also a "right tool for the job" question.  OpenSCAD, by its nature, is quite hostile to hand-and-eye, click-and-drag style modification.  It isn't that people just haven't done the work to support click-and-drag modification... it's that it isn't even clear what click-and-drag modification would *mean*. There is no shame in, for instance, using Inkscape to trace images.  That's how I made most of the tool outlines for the tool holders for my tool drawer, and how I got the outline of several bathtubs that I modeled. OpenSCAD simply isn't the right tool for all people, or for all tasks.  For most people I know, I would recommend other tools.  (Big plug for Gravity Sketch on Oculus Quest, by far the most usable 3D editor I've seen.)
ER
edmund ronald
Wed, Jan 17, 2024 9:20 PM

Look, the problem is one needs interactive tools within the OpenSCAD
environment. Tools which eg. allow one to change a parameter interactively
by twiddling a button or allow one to put up a measure tool by clicking on
two points.

If you don't need them yourself, you might at some point be convinced that
other people might want some of these.

On Wed, Jan 17, 2024 at 9:27 PM Jordan Brown via Discuss <
discuss@lists.openscad.org> wrote:

On 1/17/2024 6:03 AM, edmund ronald via Discuss wrote:

I have no problem with the code part of OpenSCAD but for some reason
people here refuse to understand that occasionally the hand and Mark I
eyeball are really useful and effective tools.

Absolutely.

But there's also a "right tool for the job" question.  OpenSCAD, by its
nature, is quite hostile to hand-and-eye, click-and-drag style
modification.  It isn't that people just haven't done the work to support
click-and-drag modification... it's that it isn't even clear what
click-and-drag modification would mean.

There is no shame in, for instance, using Inkscape to trace images.
That's how I made most of the tool outlines for the tool holders for my
tool drawer, and how I got the outline of several bathtubs that I modeled.

OpenSCAD simply isn't the right tool for all people, or for all tasks.
For most people I know, I would recommend other tools.  (Big plug for
Gravity Sketch on Oculus Quest, by far the most usable 3D editor I've seen.)


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Look, the problem is one needs interactive tools _within_ the OpenSCAD environment. Tools which eg. allow one to change a parameter interactively by twiddling a button or allow one to put up a measure tool by clicking on two points. If you don't need them yourself, you might at some point be convinced that other people might want some of these. On Wed, Jan 17, 2024 at 9:27 PM Jordan Brown via Discuss < discuss@lists.openscad.org> wrote: > On 1/17/2024 6:03 AM, edmund ronald via Discuss wrote: > > I have no problem with the code part of OpenSCAD but for some reason > people here refuse to understand that occasionally the hand and Mark I > eyeball are really useful and effective tools. > > > Absolutely. > > But there's also a "right tool for the job" question. OpenSCAD, by its > nature, is quite hostile to hand-and-eye, click-and-drag style > modification. It isn't that people just haven't done the work to support > click-and-drag modification... it's that it isn't even clear what > click-and-drag modification would *mean*. > > There is no shame in, for instance, using Inkscape to trace images. > That's how I made most of the tool outlines for the tool holders for my > tool drawer, and how I got the outline of several bathtubs that I modeled. > > OpenSCAD simply isn't the right tool for all people, or for all tasks. > For most people I know, I would recommend other tools. (Big plug for > Gravity Sketch on Oculus Quest, by far the most usable 3D editor I've seen.) > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
ER
edmund ronald
Wed, Jan 17, 2024 10:19 PM

Yes, that is correct.

On Wed, Jan 17, 2024 at 8:19 PM Father Horton via Discuss <
discuss@lists.openscad.org> wrote:

I have no problem with the code part of OpenSCAD but for some reason

people here refuse to understand that occasionally the hand and Mark I
eyeball are really useful and effective tools.

Is it a matter of refusing to understand that, or a matter that no one who
has the technical skills to make it happen is interested in doing so?

On Wed, Jan 17, 2024 at 9:30 AM Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

So, I discovered OpenSCAD about a year ago when I was exploring using
resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd
abandoned metalwork at the time, too capital-intensive for my budget, and
the promise of 3D printing was too hard to ignore.  I started modeling
parts with various tools, and rapidly settled on OpenSCAD because 1) it was
free and 2) its script-foundation clicked with my experience as a writer of
computer programs.

What I found modeling steam locomotive parts was that there were a LOT of
chamfers and fillets, seemed to be a thing in the 1880s :D.  What I also
found was that extruding 2D profiles was easily done in OpenSCAD, and the
Round-Anything/polyround.scad did a great job of rounding corners that
needed such treatment.  So, my profiles became arrays of triples, where the
third element of the triple was a radius that polyround() used to replace
the point with a set of points describing the curve.  Sweet...  Never in my
construction of D&RG #168 did I discover a need for a chamfer or fillet
that required the use of a parametric model of such.

I did run into a couple of really challenging parts, requiring a
Rube-Goldberg amalgam of tools.  The hangar for the bell, a rather
ornate-shaped thing, ended up being a set of profiles that were rounded
with polyround() and then fed into a path_extrude() script I found at
Thingiverse.  I knew BOSL2 would give me the tools to do this, but by this
time I'd become comfortable with the alternate tools and an earlier
experience with BOSL2 building rounded cab roof led me to the conclusion
that I should have started with BOSL2, wasn't going to go back and re-do
the stuff I'd already done.  So there.

To pull this into the "I discovered CadQuery" thread, good on that, but
it doesn't mean it's the only way to get things done.  And, it doesn't mean
that a way in plain OpenSCAD is just too cumbersome, just maybe cumbersome
to some.  I have a short joke about this: Two guys on a train, occasionally
the window person would look out the window, pause, and mutter a number:
"129...    235... 32.....".  Guy on the aisle: "What are you doing?"
Window guy: "Counting cows."  Aisle guy: "Geesh, how do you do that?"
Window guy: "Easy.  I just count the number of legs and divide by four..."
:D

The OpenSCAD toolbox by itself is quite powerful.  I'll bet CADQuery is
the same.  Whatever...

Glenn Butcher
On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote:

When I was a journalist, I interviewed an IBM exec and asked why there
was no GUI in their then current product line. His reply: « We aren’t
children, we don’t need mice ». If no one here understands that some  stuff
is very well done by numbers and other stuff by small adjustments by eye,
eg if I am typesetting a short poem and want to decide where to put it on
the page, I want to just slide it around the screen, then there is no point
in a continued discussion. I have no problem with the code part of OpenSCAD
but for some reason people here refuse to understand that occasionally the
hand and Mark I eyeball are really useful and effective tools.

Edmund


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Yes, that is correct. On Wed, Jan 17, 2024 at 8:19 PM Father Horton via Discuss < discuss@lists.openscad.org> wrote: > I have no problem with the code part of OpenSCAD but for some reason >> people here refuse to understand that occasionally the hand and Mark I >> eyeball are really useful and effective tools. >> > > Is it a matter of refusing to understand that, or a matter that no one who > has the technical skills to make it happen is interested in doing so? > > On Wed, Jan 17, 2024 at 9:30 AM Glenn Butcher via Discuss < > discuss@lists.openscad.org> wrote: > >> So, I discovered OpenSCAD about a year ago when I was exploring using >> resin 3D printing to scratchbuild a HO-scale steam locomotive. I'd >> abandoned metalwork at the time, too capital-intensive for my budget, and >> the promise of 3D printing was too hard to ignore. I started modeling >> parts with various tools, and rapidly settled on OpenSCAD because 1) it was >> free and 2) its script-foundation clicked with my experience as a writer of >> computer programs. >> >> What I found modeling steam locomotive parts was that there were a LOT of >> chamfers and fillets, seemed to be a thing in the 1880s :D. What I also >> found was that extruding 2D profiles was easily done in OpenSCAD, and the >> Round-Anything/polyround.scad did a great job of rounding corners that >> needed such treatment. So, my profiles became arrays of triples, where the >> third element of the triple was a radius that polyround() used to replace >> the point with a set of points describing the curve. Sweet... Never in my >> construction of D&RG #168 did I discover a need for a chamfer or fillet >> that required the use of a parametric model of such. >> >> I did run into a couple of really challenging parts, requiring a >> Rube-Goldberg amalgam of tools. The hangar for the bell, a rather >> ornate-shaped thing, ended up being a set of profiles that were rounded >> with polyround() and then fed into a path_extrude() script I found at >> Thingiverse. I knew BOSL2 would give me the tools to do this, but by this >> time I'd become comfortable with the alternate tools and an earlier >> experience with BOSL2 building rounded cab roof led me to the conclusion >> that I should have started with BOSL2, wasn't going to go back and re-do >> the stuff I'd already done. So there. >> >> To pull this into the "I discovered CadQuery" thread, good on that, but >> it doesn't mean it's the only way to get things done. And, it doesn't mean >> that a way in plain OpenSCAD is just too cumbersome, just maybe cumbersome >> to some. I have a short joke about this: Two guys on a train, occasionally >> the window person would look out the window, pause, and mutter a number: >> "129... 235... 32.....". Guy on the aisle: "What are you doing?" >> Window guy: "Counting cows." Aisle guy: "Geesh, how do you do that?" >> Window guy: "Easy. I just count the number of legs and divide by four..." >> :D >> >> The OpenSCAD toolbox by itself is quite powerful. I'll bet CADQuery is >> the same. Whatever... >> >> Glenn Butcher >> On 1/17/2024 7:03 AM, edmund ronald via Discuss wrote: >> >> When I was a journalist, I interviewed an IBM exec and asked why there >> was no GUI in their then current product line. His reply: « We aren’t >> children, we don’t need mice ». If no one here understands that some stuff >> is very well done by numbers and other stuff by small adjustments by eye, >> eg if I am typesetting a short poem and want to decide where to put it on >> the page, I want to just slide it around the screen, then there is no point >> in a continued discussion. I have no problem with the code part of OpenSCAD >> but for some reason people here refuse to understand that occasionally the >> hand and Mark I eyeball are really useful and effective tools. >> >> Edmund >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GB
Glenn Butcher
Wed, Jan 17, 2024 10:49 PM

The one thing in using OpenCAD I've found challenging is defining point
arrays for extrusion profiles. Reading this thread, if I'd have realized
Inkscape works to do this I probably wouldn't have done this, but I
ended up writing a little program to "draw" polygons. Called wxPolygon,
it Looks like this:

You just click in the window and it defines points, collecting them in
the table to the right. Move 'em around by dragging, or edit the value
in the table. It does either two-element points for feeding to
polygon(), or three-element points where the third is a radius for
feeding to Round-Anything's polyround() function or (i suspect) the
BOSL2 equivalent.

Once defined, you can either save it to a file that contains an OpenSCAD
point array, or copy-paste them into your script. Going the other way,
you can select and copy the points in a script and paste them into
wxPolygon. I tend to use the latter, personal preference, but saving to
a file will kick off OpenSCAD's preview render if the file is included
our used in the open script.

Anyway, there's a Windows installer available, or you can download the
source code and compile it yourself here:

https://github.com/butcherg/wxpolygon

Open source, no charge...

The one thing in using OpenCAD I've found challenging is defining point arrays for extrusion profiles. Reading this thread, if I'd have realized Inkscape works to do this I probably wouldn't have done this, but I ended up writing a little program to "draw" polygons. Called wxPolygon, it Looks like this: You just click in the window and it defines points, collecting them in the table to the right. Move 'em around by dragging, or edit the value in the table. It does either two-element points for feeding to polygon(), or three-element points where the third is a radius for feeding to Round-Anything's polyround() function or (i suspect) the BOSL2 equivalent. Once defined, you can either save it to a file that contains an OpenSCAD point array, or copy-paste them into your script. Going the other way, you can select and copy the points in a script and paste them into wxPolygon. I tend to use the latter, personal preference, but saving to a file will kick off OpenSCAD's preview render if the file is included our used in the open script. Anyway, there's a Windows installer available, or you can download the source code and compile it yourself here: https://github.com/butcherg/wxpolygon Open source, no charge...
ER
edmund ronald
Wed, Jan 17, 2024 11:06 PM

When I was a student, a lab where I interned used a text-based language to
lay out integrated circuits. This was great for replicating cells and
databuses and generating array logic but total hell for the precise layout
of individual cells, with entry by numbers for every transistor. One night
my patience ran out, and I located the documentation for the Tektronix
graphics  terminal and in the space of a few hours wrote an interactive
CAD program for creating the individual cell layouts interactively by
point and click. My program was still in use years later - the users wanted
it, but the professor who ran the lab hated point and click.

On Wed, Jan 17, 2024 at 11:50 PM Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

The one thing in using OpenCAD I've found challenging is defining point
arrays for extrusion profiles. Reading this thread, if I'd have realized
Inkscape works to do this I probably wouldn't have done this, but I ended
up writing a little program to "draw" polygons. Called wxPolygon, it Looks
like this:

You just click in the window and it defines points, collecting them in the
table to the right. Move 'em around by dragging, or edit the value in the
table. It does either two-element points for feeding to polygon(), or
three-element points where the third is a radius for feeding to
Round-Anything's polyround() function or (i suspect) the BOSL2 equivalent.

Once defined, you can either save it to a file that contains an OpenSCAD
point array, or copy-paste them into your script. Going the other way, you
can select and copy the points in a script and paste them into wxPolygon. I
tend to use the latter, personal preference, but saving to a file will kick
off OpenSCAD's preview render if the file is included our used in the open
script.

Anyway, there's a Windows installer available, or you can download the
source code and compile it yourself here:

https://github.com/butcherg/wxpolygon

Open source, no charge...


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

When I was a student, a lab where I interned used a text-based language to lay out integrated circuits. This was great for replicating cells and databuses and generating array logic but total hell for the precise layout of individual cells, with entry by numbers for every transistor. One night my patience ran out, and I located the documentation for the Tektronix graphics terminal and in the space of a few hours wrote an interactive CAD program for creating the individual cell layouts interactively by point and click. My program was still in use years later - the users wanted it, but the professor who ran the lab hated point and click. On Wed, Jan 17, 2024 at 11:50 PM Glenn Butcher via Discuss < discuss@lists.openscad.org> wrote: > The one thing in using OpenCAD I've found challenging is defining point > arrays for extrusion profiles. Reading this thread, if I'd have realized > Inkscape works to do this I probably wouldn't have done this, but I ended > up writing a little program to "draw" polygons. Called wxPolygon, it Looks > like this: > > You just click in the window and it defines points, collecting them in the > table to the right. Move 'em around by dragging, or edit the value in the > table. It does either two-element points for feeding to polygon(), or > three-element points where the third is a radius for feeding to > Round-Anything's polyround() function or (i suspect) the BOSL2 equivalent. > > Once defined, you can either save it to a file that contains an OpenSCAD > point array, or copy-paste them into your script. Going the other way, you > can select and copy the points in a script and paste them into wxPolygon. I > tend to use the latter, personal preference, but saving to a file will kick > off OpenSCAD's preview render if the file is included our used in the open > script. > > Anyway, there's a Windows installer available, or you can download the > source code and compile it yourself here: > > https://github.com/butcherg/wxpolygon > > Open source, no charge... > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
ER
edmund ronald
Wed, Jan 17, 2024 11:11 PM

If I may add to this anecdote, it was minus 5 or so outside, I had no car
and no food and couldnt go home at 4 AM, so I had to stay at the lab the
rest of the night and freeze while hacking. There was no couch. At 8 in the
morning the professor came in, looked at me, I was starved and frozen and
stiff, and was finishing  laying out a chip  and he said "the problem with
students is they don't work hard enough".  He really really didn't like
point and click.

On Thu, Jan 18, 2024 at 12:06 AM edmund ronald edmundronald@gmail.com
wrote:

When I was a student, a lab where I interned used a text-based language to
lay out integrated circuits. This was great for replicating cells and
databuses and generating array logic but total hell for the precise layout
of individual cells, with entry by numbers for every transistor. One night
my patience ran out, and I located the documentation for the Tektronix
graphics  terminal and in the space of a few hours wrote an interactive
CAD program for creating the individual cell layouts interactively by
point and click. My program was still in use years later - the users wanted
it, but the professor who ran the lab hated point and click.

On Wed, Jan 17, 2024 at 11:50 PM Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

The one thing in using OpenCAD I've found challenging is defining point
arrays for extrusion profiles. Reading this thread, if I'd have realized
Inkscape works to do this I probably wouldn't have done this, but I ended
up writing a little program to "draw" polygons. Called wxPolygon, it Looks
like this:

You just click in the window and it defines points, collecting them in
the table to the right. Move 'em around by dragging, or edit the value in
the table. It does either two-element points for feeding to polygon(), or
three-element points where the third is a radius for feeding to
Round-Anything's polyround() function or (i suspect) the BOSL2 equivalent.

Once defined, you can either save it to a file that contains an OpenSCAD
point array, or copy-paste them into your script. Going the other way, you
can select and copy the points in a script and paste them into wxPolygon. I
tend to use the latter, personal preference, but saving to a file will kick
off OpenSCAD's preview render if the file is included our used in the open
script.

Anyway, there's a Windows installer available, or you can download the
source code and compile it yourself here:

https://github.com/butcherg/wxpolygon

Open source, no charge...


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

If I may add to this anecdote, it was minus 5 or so outside, I had no car and no food and couldnt go home at 4 AM, so I had to stay at the lab the rest of the night and freeze while hacking. There was no couch. At 8 in the morning the professor came in, looked at me, I was starved and frozen and stiff, and was finishing laying out a chip and he said "the problem with students is they don't work hard enough". He really really didn't like point and click. On Thu, Jan 18, 2024 at 12:06 AM edmund ronald <edmundronald@gmail.com> wrote: > When I was a student, a lab where I interned used a text-based language to > lay out integrated circuits. This was great for replicating cells and > databuses and generating array logic but total hell for the precise layout > of individual cells, with entry by numbers for every transistor. One night > my patience ran out, and I located the documentation for the Tektronix > graphics terminal and in the space of a few hours wrote an interactive > CAD program for creating the individual cell layouts interactively by > point and click. My program was still in use years later - the users wanted > it, but the professor who ran the lab hated point and click. > > On Wed, Jan 17, 2024 at 11:50 PM Glenn Butcher via Discuss < > discuss@lists.openscad.org> wrote: > >> The one thing in using OpenCAD I've found challenging is defining point >> arrays for extrusion profiles. Reading this thread, if I'd have realized >> Inkscape works to do this I probably wouldn't have done this, but I ended >> up writing a little program to "draw" polygons. Called wxPolygon, it Looks >> like this: >> >> You just click in the window and it defines points, collecting them in >> the table to the right. Move 'em around by dragging, or edit the value in >> the table. It does either two-element points for feeding to polygon(), or >> three-element points where the third is a radius for feeding to >> Round-Anything's polyround() function or (i suspect) the BOSL2 equivalent. >> >> Once defined, you can either save it to a file that contains an OpenSCAD >> point array, or copy-paste them into your script. Going the other way, you >> can select and copy the points in a script and paste them into wxPolygon. I >> tend to use the latter, personal preference, but saving to a file will kick >> off OpenSCAD's preview render if the file is included our used in the open >> script. >> >> Anyway, there's a Windows installer available, or you can download the >> source code and compile it yourself here: >> >> https://github.com/butcherg/wxpolygon >> >> Open source, no charge... >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> >
ER
edmund ronald
Thu, Jan 18, 2024 12:20 AM

I don't know whether it helps, but I like working in the Edit pane typing
code. It's just that some things like finding the distance between two
points, or quickly adjusting a size is a pain. One workaround would be to
have cursors inside the viewing area, for measurement -like on engineering
scopes where one places a cursor eg. to measure lag- and also be able to
slave a parameter in the Edit pane to a slider so that one can quickly
adjust it while seeing the effect in the wireframe. Last and not least
there is the thing about the extrusion poly lines, but that is truly point
and click and a different story, I agree.

Edmund

On Wed, Jan 17, 2024 at 8:51 PM Jordan Brown via Discuss <
discuss@lists.openscad.org> wrote:

On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.
[ ... what you might call click-assisted editing ... ]

Well, yeah... but were any of those clicks on the model in the view area?

Yes, there could certainly be click/menu-assisted editing, largely in the
form of what you might call macros or templates.  We have some of that
today:  right click, insert template.  It's not as powerful as what you
suggest: it doesn't help edit parameters, and it doesn't keep track of
symbols and offer you your own modules.  That kind of assisted editing
seems applicable to any programming language.

But my impression is that that's not what people are talking about when
they talk about GUI interfaces to modeling.

Keep in mind that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

I don't think that's what the people who occasional ask for this kind of
thing are thinking of.  I think they'd rather hide the editor pane and work
only with the view pane.  (But I'm not one of them, so maybe I misread
their desires.)

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

There is some of that today, with the ability to right-click on the model
in the view pane and get the stack and click on the desired level.  That
will show you all of the "color" invocations that fed into that pixel.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

I don't know whether it helps, but I like working in the Edit pane typing code. It's just that some things like finding the distance between two points, or quickly adjusting a size is a pain. One workaround would be to have cursors inside the viewing area, for measurement -like on engineering scopes where one places a cursor eg. to measure lag- and also be able to slave a parameter in the Edit pane to a slider so that one can quickly adjust it while seeing the effect in the wireframe. Last and not least there is the thing about the extrusion poly lines, but that is truly point and click and a different story, I agree. Edmund On Wed, Jan 17, 2024 at 8:51 PM Jordan Brown via Discuss < discuss@lists.openscad.org> wrote: > On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote: > > On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: > > * Have a click-y way to add any existing module, parameterized, to the > top level. > > I think much more is possible. > [ ... what you might call click-assisted editing ... ] > > > Well, yeah... but were any of those clicks on the model in the view area? > > Yes, there could certainly be click/menu-assisted editing, largely in the > form of what you might call macros or templates. We have some of that > today: right click, insert template. It's not as powerful as what you > suggest: it doesn't help edit parameters, and it doesn't keep track of > symbols and offer you your own modules. That kind of assisted editing > seems applicable to any programming language. > > But my impression is that that's not what people are talking about when > they talk about GUI interfaces to modeling. > > Keep in mind that openscad is just being used as something to visualize the > textfile that is being edited by the gui. > > > I don't think that's what the people who occasional ask for this kind of > thing are thinking of. I think they'd rather hide the editor pane and work > only with the view pane. (But I'm not one of them, so maybe I misread > their desires.) > > With some help from openscad, this could become even more > useful. People like to select (sub)modules by pointing and > clicking. So something that might need to be added to openscad is: > "What object caused the pixel at x,y to be colored the way it is?". I > think it would need to report the lowest level object that > satisfies. The user should then be able to click "up" enough times to > go up the hierarchy to find the proper > > > There is some of that today, with the ability to right-click on the model > in the view pane and get the stack and click on the desired level. That > will show you all of the "color" invocations that fed into that pixel. > > > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
JB
Jordan Brown
Thu, Jan 18, 2024 5:18 AM

On 1/17/2024 4:20 PM, edmund ronald wrote:

I don't know whether it helps, but I like working in the Edit pane
typing code. It's just that some things like finding the distance
between two points, or quickly adjusting a size is a pain. One
workaround would be to have cursors inside the viewing area, for
measurement -like on engineering scopes where one places a cursor eg.
to measure lag- and also be able to slave a parameter in the Edit pane
to a slider so that one can quickly adjust it while seeing the effect
in the wireframe. Last and not least there is the thing about the
extrusion poly lines, but that is truly point and click and a
different story, I agree.

A measurement tool is harder to implement than it first appears, but
Guenther has a restricted one in the development snapshot.

You can control a parameter with a slider, with automatic refresh on
changes, if you put it at the top of the file and use the Customizer.

On 1/17/2024 4:20 PM, edmund ronald wrote: > I don't know whether it helps, but I like working in the Edit pane > typing code. It's just that some things like finding the distance > between two points, or quickly adjusting a size is a pain. One > workaround would be to have cursors inside the viewing area, for > measurement -like on engineering scopes where one places a cursor eg. > to measure lag- and also be able to slave a parameter in the Edit pane > to a slider so that one can quickly adjust it while seeing the effect > in the wireframe. Last and not least there is the thing about the > extrusion poly lines, but that is truly point and click and a > different story, I agree. A measurement tool is harder to implement than it first appears, but Guenther has a restricted one in the development snapshot. You can control a parameter with a slider, with automatic refresh on changes, if you put it at the top of the file and use the Customizer.
K
Ken
Thu, Jan 18, 2024 6:31 AM

And the customiser would be a lot more usable for some of us if the
developer gave it customisable font size so we could actually see it!

On 2024-01-18 16:18, Jordan Brown via Discuss wrote:

You can control a parameter with a slider, with automatic refresh on
changes, if you put it at the top of the file and use the Customizer.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

--
Cheers, Ken
bats059@gmail.com
https://vk7krj.com
https://vk7krj.com/running.html

A baby can be defined as an ego with a noise at one end and a smell at the other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!

And the customiser would be a lot more usable for some of us if the developer gave it customisable font size so we could actually see it! On 2024-01-18 16:18, Jordan Brown via Discuss wrote: > > You can control a parameter with a slider, with automatic refresh on > changes, if you put it at the top of the file and use the Customizer. > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org -- Cheers, Ken bats059@gmail.com https://vk7krj.com https://vk7krj.com/running.html ---------------------------------------- A baby can be defined as an ego with a noise at one end and a smell at the other. Your job as parents is to teach them to control all three. My job as a grandad is to tell you how you are doing it all wrong!
JB
Jordan Brown
Thu, Jan 18, 2024 6:58 AM

On 1/17/2024 10:31 PM, Ken via Discuss wrote:

And the customiser would be a lot more usable for some of us if the
developer gave it customisable font size so we could actually see it!

I'll see if I can spend some time on that.  No promises - prying time
free is tough - but since it's not a language change it shouldn't have
the slow going that most of my work does.

On 1/17/2024 10:31 PM, Ken via Discuss wrote: > And the customiser would be a lot more usable for some of us if the > developer gave it customisable font size so we could actually see it! I'll see if I can spend some time on that.  No promises - prying time free is tough - but since it's not a language change it shouldn't have the slow going that most of my work does.
BB
Bruno Boettcher
Thu, Jan 18, 2024 7:05 AM

Jordan Brown via Discuss discuss@lists.openscad.org schrieb am Do., 18.
Jan. 2024, 07:58:

On 1/17/2024 10:31 PM, Ken via Discuss wrote:

And the customiser would be a lot more usable for some of us if the
developer gave it customisable font size so we could actually see it!

I'll see if I can spend some time on that.  No promises - prying time free
is tough - but since it's not a language change it shouldn't have the slow
going that most of my work does.

That would be very kind of you! For us, older semesters, that would be a
hughe help to be able to increase on need the font size! (Less nose-grease
on the screen!!)

Thanks!
Bboett


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Jordan Brown via Discuss <discuss@lists.openscad.org> schrieb am Do., 18. Jan. 2024, 07:58: > On 1/17/2024 10:31 PM, Ken via Discuss wrote: > > And the customiser would be a lot more usable for some of us if the > developer gave it customisable font size so we could actually see it! > > > I'll see if I can spend some time on that. No promises - prying time free > is tough - but since it's not a language change it shouldn't have the slow > going that most of my work does. > That would be very kind of you! For us, older semesters, that would be a hughe help to be able to increase on need the font size! (Less nose-grease on the screen!!) Thanks! Bboett > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
K
Ken
Thu, Jan 18, 2024 7:24 AM

Thanks Jordan, that will be greatly appreciated if you can find the time
for it.

On 2024-01-18 17:58, Jordan Brown via Discuss wrote:

On 1/17/2024 10:31 PM, Ken via Discuss wrote:

And the customiser would be a lot more usable for some of us if the
developer gave it customisable font size so we could actually see it!

I'll see if I can spend some time on that.  No promises - prying time
free is tough - but since it's not a language change it shouldn't have
the slow going that most of my work does.


OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

--
Cheers, Ken
bats059@gmail.com
https://vk7krj.com
https://vk7krj.com/running.html

A baby can be defined as an ego with a noise at one end and a smell at the other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!

Thanks Jordan, that will be greatly appreciated if you can find the time for it. On 2024-01-18 17:58, Jordan Brown via Discuss wrote: > On 1/17/2024 10:31 PM, Ken via Discuss wrote: >> And the customiser would be a lot more usable for some of us if the >> developer gave it customisable font size so we could actually see it! > > I'll see if I can spend some time on that.  No promises - prying time > free is tough - but since it's not a language change it shouldn't have > the slow going that most of my work does. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- Cheers, Ken bats059@gmail.com https://vk7krj.com https://vk7krj.com/running.html ---------------------------------------- A baby can be defined as an ego with a noise at one end and a smell at the other. Your job as parents is to teach them to control all three. My job as a grandad is to tell you how you are doing it all wrong!
RW
Rogier Wolff
Thu, Jan 18, 2024 11:11 AM

On Wed, Jan 17, 2024 at 07:51:33PM +0000, Jordan Brown wrote:

On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote:

On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote:

  • Have a click-y way to add any existing module, parameterized, to the
    top level.

I think much more is possible.
[ ... what you might call click-assisted editing ... ]

Well, yeah... but were any of those clicks on the model in the view area?

If you reverse the projection of 3D => screen, you'll get a line.

If you keep a "default distance from the camera", then that is the
place to put new objects. The user is responsible for turning the
viewpoint and positioning the new objects to the correct 3D position.
A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees
right" button would be very useful to prevent unwanted movement on the
line that was just correctly positioned.

But my impression is that that's not what people are talking about when
they talk about GUI interfaces to modeling.

Right, and my suggestion is.

Keep in mind that openscad is just being used as something to visualize the
textfile that is being edited by the gui.

I don't think that's what the people who occasional ask for this kind of
thing are thinking of.  I think they'd rather hide the editor pane and
work only with the view pane.  (But I'm not one of them, so maybe I
misread their desires.)

Yes. My inclusion of the openscad code was meant as the "reasonably
simple" actions that the editor-shell would need to do to the openscad
file to give the user the impresion that actions are being taken on
their clicks.

With some help from openscad, this could become even more
useful. People like to select (sub)modules by pointing and
clicking. So something that might need to be added to openscad is:
"What object caused the pixel at x,y to be colored the way it is?". I
think it would need to report the lowest level object that
satisfies. The user should then be able to click "up" enough times to
go up the hierarchy to find the proper

There is some of that today, with the ability to right-click on the
model in the view pane and get the stack and click on the desired
level.  That will show you all of the "color" invocations that fed into
that pixel.

Oh Wow!

hmm. Rightclick is move viewpoint on mine. If that's changed in a more
recent version... that's a change that is not backward compatble with
my wet-ware.

Roger. 

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.

On Wed, Jan 17, 2024 at 07:51:33PM +0000, Jordan Brown wrote: > On 1/17/2024 5:02 AM, Rogier Wolff via Discuss wrote: > > On Wed, Jan 17, 2024 at 04:19:22AM +0000, Jordan Brown via Discuss wrote: > >> * Have a click-y way to add any existing module, parameterized, to the > >> top level. > > I think much more is possible. > > [ ... what you might call click-assisted editing ... ] > > Well, yeah... but were any of those clicks on the model in the view area? If you reverse the projection of 3D => screen, you'll get a line. If you keep a "default distance from the camera", then that is the place to put new objects. The user is responsible for turning the viewpoint and positioning the new objects to the correct 3D position. A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees right" button would be very useful to prevent unwanted movement on the line that was just correctly positioned. > But my impression is that that's not what people are talking about when > they talk about GUI interfaces to modeling. Right, and my suggestion is. > > Keep in mind that openscad is just being used as something to visualize the > > textfile that is being edited by the gui. > > I don't think that's what the people who occasional ask for this kind of > thing are thinking of.  I think they'd rather hide the editor pane and > work only with the view pane.  (But I'm not one of them, so maybe I > misread their desires.) Yes. My inclusion of the openscad code was meant as the "reasonably simple" actions that the editor-shell would need to do to the openscad file to give the user the impresion that actions are being taken on their clicks. > > With some help from openscad, this could become even more > > useful. People like to select (sub)modules by pointing and > > clicking. So something that might need to be added to openscad is: > > "What object caused the pixel at x,y to be colored the way it is?". I > > think it would need to report the lowest level object that > > satisfies. The user should then be able to click "up" enough times to > > go up the hierarchy to find the proper > > There is some of that today, with the ability to right-click on the > model in the view pane and get the stack and click on the desired > level.  That will show you all of the "color" invocations that fed into > that pixel. Oh Wow! hmm. Rightclick is move viewpoint on mine. If that's changed in a more recent version... that's a change that is not backward compatble with my wet-ware. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a is going up. -- Chris Hadfield about flying up the space shuttle.
RW
Rogier Wolff
Thu, Jan 18, 2024 11:22 AM

On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote:

If you keep a "default distance from the camera", then that is the
place to put new objects. The user is responsible for turning the
viewpoint and positioning the new objects to the correct 3D position.
A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees
right" button would be very useful to prevent unwanted movement on the
line that was just correctly positioned.

I'm now realizing that at first I was thinking: just put the object at
the origin. Now I'm thinking at the default distance from the current
view-point in the middle of the screen. That's implementation details
the implementer has to think about and implement whatever they think
is best.

Roger. 

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.

On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote: > If you keep a "default distance from the camera", then that is the > place to put new objects. The user is responsible for turning the > viewpoint and positioning the new objects to the correct 3D position. > A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees > right" button would be very useful to prevent unwanted movement on the > line that was just correctly positioned. I'm now realizing that at first I was thinking: just put the object at the origin. Now I'm thinking at the default distance from the current view-point in the middle of the screen. That's implementation details the implementer has to think about and implement whatever they think is best. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a is going up. -- Chris Hadfield about flying up the space shuttle.
NH
nop head
Thu, Jan 18, 2024 11:52 AM

I think it is double right click to show the stack trace that produced the
pixel. It's a nightmare for me because my Microsoft mice have switch bounce
on the right button and on some PCs the stack trace makes the screen black
and I have to restart OpenSCAD.

On Thu, 18 Jan 2024 at 11:22, Rogier Wolff via Discuss <
discuss@lists.openscad.org> wrote:

On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote:

If you keep a "default distance from the camera", then that is the
place to put new objects. The user is responsible for turning the
viewpoint and positioning the new objects to the correct 3D position.
A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees
right" button would be very useful to prevent unwanted movement on the
line that was just correctly positioned.

I'm now realizing that at first I was thinking: just put the object at
the origin. Now I'm thinking at the default distance from the current
view-point in the middle of the screen. That's implementation details
the implementer has to think about and implement whatever they think
is best.

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

I think it is double right click to show the stack trace that produced the pixel. It's a nightmare for me because my Microsoft mice have switch bounce on the right button and on some PCs the stack trace makes the screen black and I have to restart OpenSCAD. On Thu, 18 Jan 2024 at 11:22, Rogier Wolff via Discuss < discuss@lists.openscad.org> wrote: > On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote: > > If you keep a "default distance from the camera", then that is the > > place to put new objects. The user is responsible for turning the > > viewpoint and positioning the new objects to the correct 3D position. > > A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees > > right" button would be very useful to prevent unwanted movement on the > > line that was just correctly positioned. > > I'm now realizing that at first I was thinking: just put the object at > the origin. Now I'm thinking at the default distance from the current > view-point in the middle of the screen. That's implementation details > the implementer has to think about and implement whatever they think > is best. > > Roger. > > -- > ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 > ** > ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 ** > f equals m times a. When your f is steady, and your m is going down > your a is going up. -- Chris Hadfield about flying up the space shuttle. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GS
Guenther Sohler
Thu, Jan 18, 2024 11:53 AM

If you reverse the projection of 3D => screen, you'll get a line.

Exactly this, is key to be able to select existing points in the rendered
model.
Having this line last step is to find out, which points are nearby this
line with a few pixels tolerance.

Being able to select certain points, measuring stuff is just peanuts

> > If you reverse the projection of 3D => screen, you'll get a line. Exactly this, is key to be able to select existing points in the rendered model. Having this line last step is to find out, which points are nearby this line with a few pixels tolerance. Being able to select certain points, measuring stuff is just peanuts > >
GS
Guenther Sohler
Thu, Jan 18, 2024 11:55 AM

Once somebody manages to read back  the the depth value right below the
cursor position, we can easily select 3D  locations within the rendered
model even in preview mode.

On Thu, Jan 18, 2024 at 12:52 PM nop head via Discuss <
discuss@lists.openscad.org> wrote:

I think it is double right click to show the stack trace that produced the
pixel. It's a nightmare for me because my Microsoft mice have switch bounce
on the right button and on some PCs the stack trace makes the screen black
and I have to restart OpenSCAD.

On Thu, 18 Jan 2024 at 11:22, Rogier Wolff via Discuss <
discuss@lists.openscad.org> wrote:

On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote:

If you keep a "default distance from the camera", then that is the
place to put new objects. The user is responsible for turning the
viewpoint and positioning the new objects to the correct 3D position.
A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees
right" button would be very useful to prevent unwanted movement on the
line that was just correctly positioned.

I'm now realizing that at first I was thinking: just put the object at
the origin. Now I'm thinking at the default distance from the current
view-point in the middle of the screen. That's implementation details
the implementer has to think about and implement whatever they think
is best.

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
**    Delftechpark 11 2628 XJ  Delft, The Netherlands.  KVK: 27239233
**
f equals m times a. When your f is steady, and your m is going down
your a is going up.  -- Chris Hadfield about flying up the space shuttle.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Once somebody manages to read back the the depth value right below the cursor position, we can easily select 3D locations within the rendered model even in preview mode. On Thu, Jan 18, 2024 at 12:52 PM nop head via Discuss < discuss@lists.openscad.org> wrote: > I think it is double right click to show the stack trace that produced the > pixel. It's a nightmare for me because my Microsoft mice have switch bounce > on the right button and on some PCs the stack trace makes the screen black > and I have to restart OpenSCAD. > > On Thu, 18 Jan 2024 at 11:22, Rogier Wolff via Discuss < > discuss@lists.openscad.org> wrote: > >> On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote: >> > If you keep a "default distance from the camera", then that is the >> > place to put new objects. The user is responsible for turning the >> > viewpoint and positioning the new objects to the correct 3D position. >> > A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees >> > right" button would be very useful to prevent unwanted movement on the >> > line that was just correctly positioned. >> >> I'm now realizing that at first I was thinking: just put the object at >> the origin. Now I'm thinking at the default distance from the current >> view-point in the middle of the screen. That's implementation details >> the implementer has to think about and implement whatever they think >> is best. >> >> Roger. >> >> -- >> ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 >> ** >> ** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 >> ** >> f equals m times a. When your f is steady, and your m is going down >> your a is going up. -- Chris Hadfield about flying up the space shuttle. >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
RW
Raymond West
Thu, Jan 18, 2024 1:19 PM

I do not need to measure much within openscad. When I do I find
eyeballing is good enough. There was a thread back in September 2021,
where I explained what I ended up doing, which works good enough for me.
You can home in pretty quickly adjusting the values of p1 and p2.

I've simplified my eyeballing technique, distances can be measured
fairly quickly.

I start off by defining the tolerance I'm happy with.

I've made a module named tol() and set it to 0.5 for this example

 module tol(t){

    # sphere(t);

}

then I place a tolerance sphere at each of the two points I'm
measuring between

e.g. like

p1=([0,0,10]);
 translate(p1)tol();  // first point
 p2=([54.5,11.2,41.3]);
 translate(p2)tol(); // second point

They are easy to position, one at a time, by positioning x,y from the
top or bottom view, adjusting the appropriate values in PI or P2, and
then  position z from one of the other views. zooming or rotating the
view as required.

then the distance can be echoed by  something like

module dist(p1,p2){
    dx= p2.x-p1.x;
    dy= p2.y-p1.y;
    dz= p2.z-p2.y;
    l= sqrt((dxdx) +(dydy) +(dz*dz));
    echo(distance = l);
}

provided the points of interest lie within the tolerance spheres, I
get the distance between the points within my defined tolerance,. If I
want a more accurate result, I can reduce the tolerance and zoom in
closer when positioning the spheres. If the tolerance sphere is too
small, to see on the full size view, then I could easily  place a few
rings around them, or similar.

On 18/01/2024 00:20, edmund ronald via Discuss wrote:

I don't know whether it helps, but I like working in the Edit pane
typing code. It's just that some things like finding the distance
between two points, or quickly adjusting a size is a pain. One
workaround would be to have cursors inside the viewing area, for
measurement -like on engineering scopes where one places a cursor eg.
to measure lag- and also be able to slave a parameter in the Edit pane
to a slider so that one can quickly adjust it while seeing the effect
in the wireframe. Last and not least there is the thing about the
extrusion poly lines, but that is truly point and click and a
different story, I agree.

Edmund

I do not need to measure much within openscad. When I do I find eyeballing is good enough. There was a thread back in September 2021, where I explained what I ended up doing, which works good enough for me. You can home in pretty quickly adjusting the values of p1 and p2. > I've simplified my eyeballing technique, distances can be measured > fairly quickly. > > I start off by defining the tolerance I'm happy with. > > I've made a module named tol() and set it to 0.5 for this example > >  module tol(t){ > >     # sphere(t); > > } > > then I place a tolerance sphere at each of the two points I'm > measuring between > > e.g. like > > p1=([0,0,10]); >  translate(p1)tol();  // first point >  p2=([54.5,11.2,41.3]); >  translate(p2)tol(); // second point > > They are easy to position, one at a time, by positioning x,y from the > top or bottom view, adjusting the appropriate values in PI or P2, and > then  position z from one of the other views. zooming or rotating the > view as required. > > then the distance can be echoed by  something like > > module dist(p1,p2){ >     dx= p2.x-p1.x; >     dy= p2.y-p1.y; >     dz= p2.z-p2.y; >     l= sqrt((dx*dx) +(dy*dy) +(dz*dz)); >     echo(distance = l); > } > > provided the points of interest lie within the tolerance spheres, I > get the distance between the points within my defined tolerance,. If I > want a more accurate result, I can reduce the tolerance and zoom in > closer when positioning the spheres. If the tolerance sphere is too > small, to see on the full size view, then I could easily  place a few > rings around them, or similar. > > On 18/01/2024 00:20, edmund ronald via Discuss wrote: > I don't know whether it helps, but I like working in the Edit pane > typing code. It's just that some things like finding the distance > between two points, or quickly adjusting a size is a pain. One > workaround would be to have cursors inside the viewing area, for > measurement -like on engineering scopes where one places a cursor eg. > to measure lag- and also be able to slave a parameter in the Edit pane > to a slider so that one can quickly adjust it while seeing the effect > in the wireframe. Last and not least there is the thing about the > extrusion poly lines, but that is truly point and click and a > different story, I agree. > > Edmund >
J
jon
Thu, Jan 18, 2024 2:45 PM

I really like the approach described below (without attribution). 
Thought provoking.

I've simplified my eyeballing technique, distances can be measured
fairly quickly.

I start off by defining the tolerance I'm happy with.

I've made a module named tol() and set it to 0.5 for this example

 module tol(t){

    # sphere(t);

}

then I place a tolerance sphere at each of the two points I'm
measuring between

e.g. like

p1=([0,0,10]);
 translate(p1)tol();  // first point
 p2=([54.5,11.2,41.3]);
 translate(p2)tol(); // second point

They are easy to position, one at a time, by positioning x,y from the
top or bottom view, adjusting the appropriate values in PI or P2, and
then  position z from one of the other views.  zooming or rotating
the view as required.

then the distance can be echoed by  something like

module dist(p1,p2){
    dx= p2.x-p1.x;
    dy= p2.y-p1.y;
    dz= p2.z-p2.y;
    l= sqrt((dxdx) +(dydy) +(dz*dz));
    echo(distance = l);
}

provided the points of interest lie within the tolerance spheres, I
get the distance between the points within my defined tolerance,. If
I want a more accurate result, I can reduce the tolerance and zoom in
closer when positioning the spheres. If the tolerance sphere is too
small, to see on the full size view, then I could easily  place a few
rings around them, or similar.

I really like the approach described below (without attribution).  Thought provoking. >> I've simplified my eyeballing technique, distances can be measured >> fairly quickly. >> >> I start off by defining the tolerance I'm happy with. >> >> I've made a module named tol() and set it to 0.5 for this example >> >>  module tol(t){ >> >>     # sphere(t); >> >> } >> >> then I place a tolerance sphere at each of the two points I'm >> measuring between >> >> e.g. like >> >> p1=([0,0,10]); >>  translate(p1)tol();  // first point >>  p2=([54.5,11.2,41.3]); >>  translate(p2)tol(); // second point >> >> They are easy to position, one at a time, by positioning x,y from the >> top or bottom view, adjusting the appropriate values in PI or P2, and >> then  position z from one of the other views.  zooming or rotating >> the view as required. >> >> then the distance can be echoed by  something like >> >> module dist(p1,p2){ >>     dx= p2.x-p1.x; >>     dy= p2.y-p1.y; >>     dz= p2.z-p2.y; >>     l= sqrt((dx*dx) +(dy*dy) +(dz*dz)); >>     echo(distance = l); >> } >> >> provided the points of interest lie within the tolerance spheres, I >> get the distance between the points within my defined tolerance,. If >> I want a more accurate result, I can reduce the tolerance and zoom in >> closer when positioning the spheres. If the tolerance sphere is too >> small, to see on the full size view, then I could easily  place a few >> rings around them, or similar. >> >>
SL
Steve Lelievre
Thu, Jan 18, 2024 6:35 PM

Yes, I like that trick. And, using the alt/arrow feature* makes it very
easy to position of the tolerance spheres exactly where you want them
based on what you see in the preview area.

In fact, come to think of it, perhaps alt/arrow already provides a
reasonable/adequate alternative to the click-and-dragging of vertices or
objects associated with a more interactive interface?

Steve

On 2024-01-18 6:45 a.m., jon via Discuss wrote:

I really like the approach described below (without attribution). 
Thought provoking.

I've simplified my eyeballing technique, distances can be measured
fairly quickly.

I start off by defining the tolerance I'm happy with.

I've made a module named tol() and set it to 0.5 for this example

 module tol(t){

    # sphere(t);

}

then I place a tolerance sphere at each of the two points I'm
measuring between

e.g. like

p1=([0,0,10]);
 translate(p1)tol();  // first point
 p2=([54.5,11.2,41.3]);
 translate(p2)tol(); // second point

They are easy to position, one at a time, by positioning x,y from
the top or bottom view, adjusting the appropriate values in PI or
P2, and then  position z from one of the other views.  zooming or
rotating the view as required.

then the distance can be echoed by  something like

module dist(p1,p2){
    dx= p2.x-p1.x;
    dy= p2.y-p1.y;
    dz= p2.z-p2.y;
    l= sqrt((dxdx) +(dydy) +(dz*dz));
    echo(distance = l);
}

provided the points of interest lie within the tolerance spheres, I
get the distance between the points within my defined tolerance,. If
I want a more accurate result, I can reduce the tolerance and zoom
in closer when positioning the spheres. If the tolerance sphere is
too small, to see on the full size view, then I could easily  place
a few rings around them, or similar.


OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

Yes, I like that trick. And, using the alt/arrow feature* makes it very easy to position of the tolerance spheres exactly where you want them based on what you see in the preview area. In fact, come to think of it, perhaps alt/arrow already provides a reasonable/adequate alternative to the click-and-dragging of vertices or objects associated with a more interactive interface? Steve * = https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_User_Interface#Interactive_modification_of_the_numerical_value On 2024-01-18 6:45 a.m., jon via Discuss wrote: > > I really like the approach described below (without attribution).  > Thought provoking. > >>> I've simplified my eyeballing technique, distances can be measured >>> fairly quickly. >>> >>> I start off by defining the tolerance I'm happy with. >>> >>> I've made a module named tol() and set it to 0.5 for this example >>> >>>  module tol(t){ >>> >>>     # sphere(t); >>> >>> } >>> >>> then I place a tolerance sphere at each of the two points I'm >>> measuring between >>> >>> e.g. like >>> >>> p1=([0,0,10]); >>>  translate(p1)tol();  // first point >>>  p2=([54.5,11.2,41.3]); >>>  translate(p2)tol(); // second point >>> >>> They are easy to position, one at a time, by positioning x,y from >>> the top or bottom view, adjusting the appropriate values in PI or >>> P2, and then  position z from one of the other views.  zooming or >>> rotating the view as required. >>> >>> then the distance can be echoed by  something like >>> >>> module dist(p1,p2){ >>>     dx= p2.x-p1.x; >>>     dy= p2.y-p1.y; >>>     dz= p2.z-p2.y; >>>     l= sqrt((dx*dx) +(dy*dy) +(dz*dz)); >>>     echo(distance = l); >>> } >>> >>> provided the points of interest lie within the tolerance spheres, I >>> get the distance between the points within my defined tolerance,. If >>> I want a more accurate result, I can reduce the tolerance and zoom >>> in closer when positioning the spheres. If the tolerance sphere is >>> too small, to see on the full size view, then I could easily  place >>> a few rings around them, or similar. >>> >>> > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- https://www.gnomoni.ca https://www.youtube.com/@gnomonica
JB
Jordan Brown
Thu, Jan 18, 2024 7:37 PM

On 1/18/2024 3:22 AM, Rogier Wolff wrote:

On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote:

If you keep a "default distance from the camera", then that is the
place to put new objects. The user is responsible for turning the
viewpoint and positioning the new objects to the correct 3D position.
A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees
right" button would be very useful to prevent unwanted movement on the
line that was just correctly positioned.

I'm now realizing that at first I was thinking: just put the object at
the origin. Now I'm thinking at the default distance from the current
view-point in the middle of the screen. That's implementation details
the implementer has to think about and implement whatever they think
is best.

But your example seemed to have it inserting the new object into the
right context in the program, which isn't the same thing as inserting it
at the origin (or at any point readily derivable from the view window).

On 1/18/2024 3:22 AM, Rogier Wolff wrote: > On Thu, Jan 18, 2024 at 12:11:45PM +0100, Rogier Wolff via Discuss wrote: >> If you keep a "default distance from the camera", then that is the >> place to put new objects. The user is responsible for turning the >> viewpoint and positioning the new objects to the correct 3D position. >> A "rotate viewpoint 90 degrees left" and "rotate viewpoint 90 degrees >> right" button would be very useful to prevent unwanted movement on the >> line that was just correctly positioned. > I'm now realizing that at first I was thinking: just put the object at > the origin. Now I'm thinking at the default distance from the current > view-point in the middle of the screen. That's implementation details > the implementer has to think about and implement whatever they think > is best. > But your example seemed to have it inserting the new object into the right context in the program, which isn't the same thing as inserting it at the origin (or at any point readily derivable from the view window).