discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Static Code Analysis for OpenSCAD

C
crunchysteve
Wed, Nov 25, 2020 7:39 PM

My 2c? Then it wouldn’t be OpenSCAD, it would bePython 3.

Right now I’m trying to learn Python 3 and, because I have a lifelong exec
dysfuntion disorder, I struggle to get my head around it. I know not why,
but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC design
work I might find myself stranded, oK, yes back compatibility, but forhow
long?

Sure, OpenSCAD has quirks and limitations, but the language is the product.

Like I say, just my 2c.


Make things, travel and tell stories.

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

My 2c? Then it wouldn’t be OpenSCAD, it would bePython 3. Right now I’m trying to learn Python 3 and, because I have a lifelong exec dysfuntion disorder, I struggle to get my head around it. I know not why, but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC design work I might find myself stranded, oK, yes back compatibility, but forhow long? Sure, OpenSCAD has quirks and limitations, but the language is the product. Like I say, just my 2c. ----- Make things, travel and tell stories. -- Sent from: http://forum.openscad.org/
L
lar3ry@sasktel.net
Wed, Nov 25, 2020 8:54 PM

On 25 Nov 2020 at 12:39, crunchysteve wrote:

My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3.

Right now I´m trying to learn Python 3 and, because I have a lifelong exec
dysfuntion disorder, I struggle to get my head around it. I know not why,
but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC design
work I might find myself stranded, oK, yes back compatibility, but forhow
long?

Sure, OpenSCAD has quirks and limitations, but the language is the product.

Like I say, just my 2c.

I'll add a penny to that 2c. I am apparently unable to wrap my head around
Python. An OpenSCADAlike that requires me to do Python would definitely
be a non-starter for me.

On 25 Nov 2020 at 12:39, crunchysteve wrote: > My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3. > > Right now I´m trying to learn Python 3 and, because I have a lifelong exec > dysfuntion disorder, I struggle to get my head around it. I know not why, > but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC design > work I might find myself stranded, oK, yes back compatibility, but forhow > long? > > Sure, OpenSCAD has quirks and limitations, but the language is the product. > > Like I say, just my 2c. I'll add a penny to that 2c. I am apparently unable to wrap my head around Python. An OpenSCADAlike that requires me to do Python would definitely be a non-starter for me.
NH
nop head
Wed, Nov 25, 2020 11:33 PM

Yes Python is a lot more complicated than OpenSCAD, so I guess it would be
harder to learn for a Newbie. It is hard to judge as I never struggled to
learn a computer language but after ending a career writing C++, I much
prefer Python for programming and OpenScad for describing in my spare time.

On Wed, 25 Nov 2020 at 20:55, lar3ry@sasktel.net wrote:

On 25 Nov 2020 at 12:39, crunchysteve wrote:

My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3.

Right now I´m trying to learn Python 3 and, because I have a lifelong

exec

dysfuntion disorder, I struggle to get my head around it. I know not why,
but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC

design

work I might find myself stranded, oK, yes back compatibility, but forhow
long?

Sure, OpenSCAD has quirks and limitations, but the language is the

product.

Like I say, just my 2c.

I'll add a penny to that 2c. I am apparently unable to wrap my head around
Python. An OpenSCADAlike that requires me to do Python would definitely
be a non-starter for me.


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

Yes Python is a lot more complicated than OpenSCAD, so I guess it would be harder to learn for a Newbie. It is hard to judge as I never struggled to learn a computer language but after ending a career writing C++, I much prefer Python for programming and OpenScad for describing in my spare time. On Wed, 25 Nov 2020 at 20:55, <lar3ry@sasktel.net> wrote: > On 25 Nov 2020 at 12:39, crunchysteve wrote: > > My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3. > > > > Right now I´m trying to learn Python 3 and, because I have a lifelong > exec > > dysfuntion disorder, I struggle to get my head around it. I know not why, > > but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC > design > > work I might find myself stranded, oK, yes back compatibility, but forhow > > long? > > > > Sure, OpenSCAD has quirks and limitations, but the language is the > product. > > > > Like I say, just my 2c. > > I'll add a penny to that 2c. I am apparently unable to wrap my head around > Python. An OpenSCADAlike that requires me to do Python would definitely > be a non-starter for me. > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
T
Troberg
Thu, Nov 26, 2020 8:15 AM

doug.moen wrote

Well, there's already dozens of projects on github which replace OpenSCAD
with a better language, including my own project Curv. For some reason,
none of them are as popular as OpenSCAD.

Translating idiomatic OpenSCAD to idiomatic, maintainable Python is
ridiculously hard. If you want 100% backward compatibility, then you
basically have to embed an OpenSCAD interpreter in Python to handle all
the weird language semantics, such as: override semantics of multiple
variable assignments to the same name (which is important when including a
file and then overriding some of its variable definitions); dynamic
scoping of $ variables; tail recursive functions; the fact that each call
to children() re-evaluates the actual parameter using the current values
of $ variables; and so on. If you instead translate to idiomatic,
maintainable Python, then you'll only get an approximation, some OpenSCAD
idioms won't work, and manual fixup will be required.

If you implement this idea as a new project, then the translator will be a
major effort, and will require a lot of ongoing work to track new language
features.

This.

I looked into this when I was new at OpenSCAD, I even started to build a VBA
layer which would act as a front end to the OpenSCAD code, but in the end,
after quite a lot of work, I dropped it, because I realized that to properly
"drive" OpenSCAD, I would have to re-implement almost all of the 3D logic.
My code needed to know what OpenSCAD was going to do with the stuff I put
into it, and know what the result was going to be, for it to be able to do
the stuff I wanted, and then it would be easier to just rebuild it all, and
I didn't want to do that.

Yes, OpenSCAD can be very frustrating sometimes, and seemingly simple things
can be next to impossible (see my 2D outline thingy in a recent thread...),
but it can almost always get the work done simply and effectively, and if
you take some times building a part library and a library of helper modules,
it's very nice to work with. My OpenSCAD code doesn't look much like
OpenSCAD at all anymore, especially when I do 3D stuff, as I almost
exclusively use my parts and helper modules, and almost never use the base
OpenSCAD functions, not even basic stuff like translate() and rotate().

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

doug.moen wrote > Well, there's already dozens of projects on github which replace OpenSCAD > with a better language, including my own project Curv. For some reason, > none of them are as popular as OpenSCAD. > > Translating idiomatic OpenSCAD to idiomatic, maintainable Python is > ridiculously hard. If you want 100% backward compatibility, then you > basically have to embed an OpenSCAD interpreter in Python to handle all > the weird language semantics, such as: override semantics of multiple > variable assignments to the same name (which is important when including a > file and then overriding some of its variable definitions); dynamic > scoping of $ variables; tail recursive functions; the fact that each call > to children() re-evaluates the actual parameter using the current values > of $ variables; and so on. If you instead translate to idiomatic, > maintainable Python, then you'll only get an approximation, some OpenSCAD > idioms won't work, and manual fixup will be required. > > If you implement this idea as a new project, then the translator will be a > major effort, and will require a lot of ongoing work to track new language > features. This. I looked into this when I was new at OpenSCAD, I even started to build a VBA layer which would act as a front end to the OpenSCAD code, but in the end, after quite a lot of work, I dropped it, because I realized that to properly "drive" OpenSCAD, I would have to re-implement almost all of the 3D logic. My code needed to know what OpenSCAD was going to do with the stuff I put into it, and know what the result was going to be, for it to be able to do the stuff I wanted, and then it would be easier to just rebuild it all, and I didn't want to do that. Yes, OpenSCAD can be very frustrating sometimes, and seemingly simple things can be next to impossible (see my 2D outline thingy in a recent thread...), but it can almost always get the work done simply and effectively, and if you take some times building a part library and a library of helper modules, it's very nice to work with. My OpenSCAD code doesn't look much like OpenSCAD at all anymore, especially when I do 3D stuff, as I almost exclusively use my parts and helper modules, and almost never use the base OpenSCAD functions, not even basic stuff like translate() and rotate(). -- Sent from: http://forum.openscad.org/
TH
Tim Hawkins
Thu, Nov 26, 2020 10:49 AM

The biggest break in moving to python is having to deal with the indent
based blocks. Which I personally have, at work I spend not insignificant
amounts of time fixing broken kubernetes yaml files, so much so that we
have now switched everything to json (k8s does both),  becuase it's easier.

Please if openscad shifts language base, don't use python, it sucks,
JavaScript is much better and the two main implementations squirrelmonkey
and v8 are designed to be embedded in c++ based codebases and allow
extension by adding default objects and functions to the interpreter. Both
also support JIT compilation. JavaScript has a bigger user base, tooling
and is closer to the existing language syntax.

On Thu, Nov 26, 2020, 07:34 nop head nop.head@gmail.com wrote:

Yes Python is a lot more complicated than OpenSCAD, so I guess it would be
harder to learn for a Newbie. It is hard to judge as I never struggled to
learn a computer language but after ending a career writing C++, I much
prefer Python for programming and OpenScad for describing in my spare time.

On Wed, 25 Nov 2020 at 20:55, lar3ry@sasktel.net wrote:

On 25 Nov 2020 at 12:39, crunchysteve wrote:

My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3.

Right now I´m trying to learn Python 3 and, because I have a lifelong

exec

dysfuntion disorder, I struggle to get my head around it. I know not

why,

but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC

design

work I might find myself stranded, oK, yes back compatibility, but

forhow

long?

Sure, OpenSCAD has quirks and limitations, but the language is the

product.

Like I say, just my 2c.

I'll add a penny to that 2c. I am apparently unable to wrap my head
around
Python. An OpenSCADAlike that requires me to do Python would definitely
be a non-starter for me.


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

The biggest break in moving to python is having to deal with the indent based blocks. Which I personally have, at work I spend not insignificant amounts of time fixing broken kubernetes yaml files, so much so that we have now switched everything to json (k8s does both), becuase it's easier. Please if openscad shifts language base, don't use python, it sucks, JavaScript is much better and the two main implementations squirrelmonkey and v8 are designed to be embedded in c++ based codebases and allow extension by adding default objects and functions to the interpreter. Both also support JIT compilation. JavaScript has a bigger user base, tooling and is closer to the existing language syntax. On Thu, Nov 26, 2020, 07:34 nop head <nop.head@gmail.com> wrote: > Yes Python is a lot more complicated than OpenSCAD, so I guess it would be > harder to learn for a Newbie. It is hard to judge as I never struggled to > learn a computer language but after ending a career writing C++, I much > prefer Python for programming and OpenScad for describing in my spare time. > > > On Wed, 25 Nov 2020 at 20:55, <lar3ry@sasktel.net> wrote: > >> On 25 Nov 2020 at 12:39, crunchysteve wrote: >> > My 2c? Then it wouldn´t be OpenSCAD, it would bePython 3. >> > >> > Right now I´m trying to learn Python 3 and, because I have a lifelong >> exec >> > dysfuntion disorder, I struggle to get my head around it. I know not >> why, >> > but I figured out OpenSCAD basics in a few weeks. For my FDM andCNC >> design >> > work I might find myself stranded, oK, yes back compatibility, but >> forhow >> > long? >> > >> > Sure, OpenSCAD has quirks and limitations, but the language is the >> product. >> > >> > Like I say, just my 2c. >> >> I'll add a penny to that 2c. I am apparently unable to wrap my head >> around >> Python. An OpenSCADAlike that requires me to do Python would definitely >> be a non-starter for me. >> >> >> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
JP
Jérôme Plût
Thu, Nov 26, 2020 2:14 PM

Please if openscad shifts language base, don't use python, it sucks, JavaScript

Thanks for summing it up so nicely, and I fully agree with that;
though given the tendency to manipulate huge object trees, instead of
Javascript my personal choice would be some list-based language, e.g.
Julia, but that's about tastes and colors. For a very close example,
Lilypond (a music score program, with which I'm reasonably familiar)
uses Scheme as a scripting language, and it works quite well once you
are used to it.

The “ “ “ best ” ” ” (triples quotes intentional) way to move away
from OpenSCAD to another language (by which I mean, if this were
absolutely really really necessary, the reasonable choice) would be by
exposing an API (including at low level OpenCSG, GCAL, and at a higher
level the preview and customizer windows, etc.) around which the user
could program in anywhich language, including standard OpenSCAD.

On the other hand, the current OpenSCAD language, although definitely
not perfect, is quite a good start in its current form (there is some
impressive code out there, such as relativity.scad; and, as a recent
user, I am starting to have quite some fun with the language...). I
think that instead of moving languages, efforts would be best employed
to

  1. iron out the most irritating bits of the language, which seems to
    be already partly in the works (two “easy” examples, that I would
    find extremely useful: passing functions around, and enabling
    variadic functions/list unwrapping, possibly via an ellipsis
    operator (which would also supersede the ugly “each”); there are
    certainly other examples that I did not think of);

  2. try to work out a “standard library” of basic functions and modules
    (for another comparable, successful example, think of what LaTeX is
    to TeX). E.g. most of us will have implemented at least a few basic
    list operations (flatten(), sum() etc); linear algebra; conversion
    between Euler angles and rotation matrices; etc. Since these are
    perfectly possible in userland they should be distributed in
    userland.

Point 2 might in turn require marginal tweaks to the basic language. A
concrete example is renaming modules; my own “standard library”, as a
lot of others likely do, defines an enhanced version of
linear_extrude, which is backwards-compatible, but yet I had to call
it lin_extrude. Also see how relativity.scad had to rename cube,
cylinder and sphere to box, rod and ball.

> Please if openscad shifts language base, don't use python, it sucks, JavaScript Thanks for summing it up so nicely, and I fully agree with that; though given the tendency to manipulate huge object trees, instead of Javascript my personal choice would be some list-based language, e.g. Julia, but that's about tastes and colors. For a very close example, Lilypond (a music score program, with which I'm reasonably familiar) uses Scheme as a scripting language, and it works quite well once you are used to it. The “ “ “ best ” ” ” (triples quotes intentional) way to move away from OpenSCAD to another language (by which I mean, if this were absolutely really really necessary, the reasonable choice) would be by exposing an API (including at low level OpenCSG, GCAL, and at a higher level the preview and customizer windows, etc.) around which the user could program in anywhich language, including standard OpenSCAD. On the other hand, the current OpenSCAD language, although definitely not perfect, is quite a good start in its current form (there is some impressive code out there, such as relativity.scad; and, as a recent user, I am starting to have quite some fun with the language...). I think that instead of moving languages, efforts would be best employed to 1. iron out the most irritating bits of the language, which seems to be already partly in the works (two “easy” examples, that I would find extremely useful: passing functions around, and enabling variadic functions/list unwrapping, possibly via an ellipsis operator (which would also supersede the ugly “each”); there are certainly other examples that I did not think of); 2. try to work out a “standard library” of basic functions and modules (for another comparable, successful example, think of what LaTeX is to TeX). E.g. most of us will have implemented at least a few basic list operations (flatten(), sum() etc); linear algebra; conversion between Euler angles and rotation matrices; etc. Since these are perfectly possible in userland they should be distributed in userland. Point 2 might in turn require marginal tweaks to the basic language. A concrete example is renaming modules; my own “standard library”, as a lot of others likely do, defines an enhanced version of linear_extrude, which is backwards-compatible, but yet I had to call it lin_extrude. Also see how relativity.scad had to rename cube, cylinder and sphere to box, rod and ball.
J
jon
Thu, Nov 26, 2020 2:48 PM

I don't mean to pick on any particular person, but the responses below
really tell the story.  We are a relatively small community that is
geographically diverse and with diverse computer backgrounds.  I would
add my personal language preference (Pascal or Modula II), but why go
on?  There is no single language that would gain majority support within
our ranks.

It is clear that there are many external efforts to "do OpenSCAD right",
so if others want to add to the list, they should do so. There have been
recent testimonials about how challenging that can be.

The rest of us need to focus on how to improve OpenSCAD.  One way to do
this would be to come together to create a short list of important
changes, and then provide funding or programming effort for those changes.

There may not be very many libraries available for OpenSCAD, but there
are more than enough to make my head spin.  Many of them are very
powerful.  Should we ask OpenSCAD to do everything we want, or OpenSCAD
plus a library to do everything we want?  I believe that the latter is
the important issue.  No other language survives (is popular) without
its libraries.

I find the language comparisons to be entertaining but not productive,
if what we really want is a more powerful and more effective OpenSCAD.

I have recently started using Carsten's AngelCAD, which now can accept
OpenSCAD files.  I can develop with OpenSCAD (for the most part) but
when OpenSCAD falls on its face (either in terms of crashing or taking
too much time to complete a calculation), I can turn to AngelCAD to get
the job done.  Perhaps we can separate the language from the efficiency
of calculating STL files.

Jon

On 11/26/2020 9:14 AM, Jérôme Plût wrote:

Please if openscad shifts language base, don't use python, it sucks, JavaScript

Thanks for summing it up so nicely, and I fully agree with that;
though given the tendency to manipulate huge object trees, instead of
Javascript my personal choice would be some list-based language, e.g.
Julia, but that's about tastes and colors. For a very close example,
Lilypond (a music score program, with which I'm reasonably familiar)
uses Scheme as a scripting language, and it works quite well once you
are used to it.

http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I don't mean to pick on any particular person, but the responses below really tell the story.  We are a relatively small community that is geographically diverse and with diverse computer backgrounds.  I would add my personal language preference (Pascal or Modula II), but why go on?  There is no single language that would gain majority support within our ranks. It is clear that there are many external efforts to "do OpenSCAD right", so if others want to add to the list, they should do so. There have been recent testimonials about how challenging that can be. The rest of us need to focus on how to improve OpenSCAD.  One way to do this would be to come together to create a short list of important changes, and then provide funding or programming effort for those changes. There may not be very many libraries available for OpenSCAD, but there are more than enough to make my head spin.  Many of them are very powerful.  Should we ask OpenSCAD to do everything we want, or OpenSCAD plus a library to do everything we want?  I believe that the latter is the important issue.  No other language survives (is popular) without its libraries. I find the language comparisons to be entertaining but not productive, if what we really want is a more powerful and more effective OpenSCAD. I have recently started using Carsten's AngelCAD, which now can accept OpenSCAD files.  I can develop with OpenSCAD (for the most part) but when OpenSCAD falls on its face (either in terms of crashing or taking too much time to complete a calculation), I can turn to AngelCAD to get the job done.  Perhaps we can separate the language from the efficiency of calculating STL files. Jon On 11/26/2020 9:14 AM, Jérôme Plût wrote: >> Please if openscad shifts language base, don't use python, it sucks, JavaScript > Thanks for summing it up so nicely, and I fully agree with that; > though given the tendency to manipulate huge object trees, instead of > Javascript my personal choice would be some list-based language, e.g. > Julia, but that's about tastes and colors. For a very close example, > Lilypond (a music score program, with which I'm reasonably familiar) > uses Scheme as a scripting language, and it works quite well once you > are used to it. > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
TH
Tim Hawkins
Thu, Dec 3, 2020 9:00 PM

There is an openscad plugin for InteliJ (which has a community version)
that does full language parsing, colourisation, intellisense and does file
and block re-formatting,. Which uses openscad to do preview and stl output.
It also has full support for git, which find incredibly confident. I don't
use the openscad app much any more as a result.  The only pain is
remembering to close the preview in the copy of openscad instead of just
switching back to the editor, of you end up spawning lots of copies of scad
without realizing it.

It would be cool if it could track the active pid and repeat updates on
that instance so you can have intellij on one screen and openscad on the
other. But that will probaly come.

https://plugins.jetbrains.com/plugin/11198-openscad-language-support

On Wed, Nov 25, 2020, 14:18 Revar Desmera revarbat@gmail.com wrote:

That’d not a bad idea.  Has anyone’s BetterSCAD project integrated with
Eclipse or Atom with a preview window?

  • Revar

On Nov 24, 2020, at 9:42 PM, John Lussmyer Cougar@CasaDelGato.com

wrote:

On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said:

In my experience, the biggest failing of almost other projects is this

space is extremely simple? they expect you to run it from a command-line.
This is a non-starter for 95% of users on Windows, and far less than
optimal on OS X. It needs to have an GUI application you can download and
run without going to cmd.exe or Terminal.app. Another frequent flailing is
that documentation is often an afterthought.

I'm still of the opinion that you get a LOT of capability for free if

you write a language parser for Eclipse.

It has all the editor features you can want, just needs to know the

syntax of the language.

--

Bobcats and Cougars, oh my!

There is an openscad plugin for InteliJ (which has a community version) that does full language parsing, colourisation, intellisense and does file and block re-formatting,. Which uses openscad to do preview and stl output. It also has full support for git, which find incredibly confident. I don't use the openscad app much any more as a result. The only pain is remembering to close the preview in the copy of openscad instead of just switching back to the editor, of you end up spawning lots of copies of scad without realizing it. It would be cool if it could track the active pid and repeat updates on that instance so you can have intellij on one screen and openscad on the other. But that will probaly come. https://plugins.jetbrains.com/plugin/11198-openscad-language-support On Wed, Nov 25, 2020, 14:18 Revar Desmera <revarbat@gmail.com> wrote: > That’d not a bad idea. Has anyone’s BetterSCAD project integrated with > Eclipse or Atom with a preview window? > > - Revar > > > > On Nov 24, 2020, at 9:42 PM, John Lussmyer <Cougar@CasaDelGato.com> > wrote: > > > > On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said: > >> In my experience, the biggest failing of almost other projects is this > space is extremely simple? they expect you to run it from a command-line. > This is a non-starter for 95% of users on Windows, and far less than > optimal on OS X. It needs to have an GUI application you can download and > run without going to cmd.exe or Terminal.app. Another frequent flailing is > that documentation is often an afterthought. > > > > I'm still of the opinion that you get a LOT of capability for free if > you write a language parser for Eclipse. > > It has all the editor features you can want, just needs to know the > syntax of the language. > > > > > > -- > > > > Bobcats and Cougars, oh my! > http://john.casadelgato.com/Pets_______________________________________________ > > OpenSCAD mailing list > > Discuss@lists.openscad.org > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
CN
Csaba Nagy
Fri, Dec 4, 2020 12:11 AM

While I was the one to start that IntelliJ plugin, I didn't touch it
for a long time, development and maintenance was taken over by Lucien
Denisey who does a good job on it. Thanks Lucien :-)

On Linux I have the following python method to achieve detecting an
already running Openscad window with a specific file:

def open_scad_once(scad_file):
"""
Opens the given file in openscad, if not already open.
:param scad_file: the file to be opened in OpenSCAD
"""
processes = [
pid for pid in os.listdir("/proc")
if (
pid.isdigit()
and read_content("/proc/%s/cmdline" %
pid).strip("\0").split("\0") == [
"openscad", scad_file
]
)
]
if len(processes) == 0:
os.system("openscad %s &" % scad_file)

I use this function from PyCharm to open scad files generated by
SolidPython scripts, so far it works well for me.

While it is python and the IntelliJ plugin is Java, I guess it gives a
hint on how it can be done on linux - Mac could be relatively similar,
Windows is a different beast though and I have no idea how it would
work.

Cheers,
Csaba

On Fri, 2020-12-04 at 05:00 +0800, Tim Hawkins wrote:

There is an openscad plugin for InteliJ (which has a community
version) that does full language parsing, colourisation, intellisense
and does file and block re-formatting,. Which uses openscad to do
preview and stl output. It also has full support for git, which find
incredibly confident. I don't use the openscad app much any more as a
result.  The only pain is remembering to close the preview in the
copy of openscad instead of just switching back to the editor, of you
end up spawning lots of copies of scad without realizing it.

It would be cool if it could track the active pid and repeat updates
on that instance so you can have intellij on one screen and openscad
on the other. But that will probaly come.

https://plugins.jetbrains.com/plugin/11198-openscad-language-support

On Wed, Nov 25, 2020, 14:18 Revar Desmera revarbat@gmail.com wrote:

That’d not a bad idea.  Has anyone’s BetterSCAD project integrated
with Eclipse or Atom with a preview window?

  • Revar

On Nov 24, 2020, at 9:42 PM, John Lussmyer <

On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said:

In my experience, the biggest failing of almost other projects

is this space is extremely simple? they expect you to run it from a
command-line.  This is a non-starter for 95% of users on Windows,
and far less than optimal on OS X. It needs to have an GUI
application you can download and run without going to cmd.exe or
Terminal.app. Another frequent flailing is that documentation is
often an afterthought.

I'm still of the opinion that you get a LOT of capability for

free if you write a language parser for Eclipse.

It has all the editor features you can want, just needs to know

the syntax of the language.

--

Bobcats and Cougars, oh my!

OpenSCAD mailing list
Discuss@lists.openscad.org

While I was the one to start that IntelliJ plugin, I didn't touch it for a long time, development and maintenance was taken over by Lucien Denisey who does a good job on it. Thanks Lucien :-) On Linux I have the following python method to achieve detecting an already running Openscad window with a specific file: def open_scad_once(scad_file): """ Opens the given file in openscad, if not already open. :param scad_file: the file to be opened in OpenSCAD """ processes = [ pid for pid in os.listdir("/proc") if ( pid.isdigit() and read_content("/proc/%s/cmdline" % pid).strip("\0").split("\0") == [ "openscad", scad_file ] ) ] if len(processes) == 0: os.system("openscad %s &" % scad_file) I use this function from PyCharm to open scad files generated by SolidPython scripts, so far it works well for me. While it is python and the IntelliJ plugin is Java, I guess it gives a hint on how it can be done on linux - Mac could be relatively similar, Windows is a different beast though and I have no idea how it would work. Cheers, Csaba On Fri, 2020-12-04 at 05:00 +0800, Tim Hawkins wrote: > There is an openscad plugin for InteliJ (which has a community > version) that does full language parsing, colourisation, intellisense > and does file and block re-formatting,. Which uses openscad to do > preview and stl output. It also has full support for git, which find > incredibly confident. I don't use the openscad app much any more as a > result. The only pain is remembering to close the preview in the > copy of openscad instead of just switching back to the editor, of you > end up spawning lots of copies of scad without realizing it. > > It would be cool if it could track the active pid and repeat updates > on that instance so you can have intellij on one screen and openscad > on the other. But that will probaly come. > > https://plugins.jetbrains.com/plugin/11198-openscad-language-support > > > On Wed, Nov 25, 2020, 14:18 Revar Desmera <revarbat@gmail.com> wrote: > > That’d not a bad idea. Has anyone’s BetterSCAD project integrated > > with Eclipse or Atom with a preview window? > > > > - Revar > > > > > > > On Nov 24, 2020, at 9:42 PM, John Lussmyer < > > Cougar@CasaDelGato.com> wrote: > > > > > > On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said: > > >> In my experience, the biggest failing of almost other projects > > is this space is extremely simple? they expect you to run it from a > > command-line. This is a non-starter for 95% of users on Windows, > > and far less than optimal on OS X. It needs to have an GUI > > application you can download and run without going to cmd.exe or > > Terminal.app. Another frequent flailing is that documentation is > > often an afterthought. > > > > > > I'm still of the opinion that you get a LOT of capability for > > free if you write a language parser for Eclipse. > > > It has all the editor features you can want, just needs to know > > the syntax of the language. > > > > > > > > > -- > > > > > > Bobcats and Cougars, oh my! > > http://john.casadelgato.com/Pets_______________________________________________ > > > OpenSCAD mailing list > > > Discuss@lists.openscad.org > > > > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > > > _______________________________________________ > > OpenSCAD mailing list > > Discuss@lists.openscad.org > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
TH
Tim Hawkins
Sat, Dec 5, 2020 2:11 AM

Cool, I'm a Linux man aswell

On Fri, Dec 4, 2020, 08:12 Csaba Nagy ncsaba@javampire.com wrote:

While I was the one to start that IntelliJ plugin, I didn't touch it
for a long time, development and maintenance was taken over by Lucien
Denisey who does a good job on it. Thanks Lucien :-)

On Linux I have the following python method to achieve detecting an
already running Openscad window with a specific file:

def open_scad_once(scad_file):
"""
Opens the given file in openscad, if not already open.
:param scad_file: the file to be opened in OpenSCAD
"""
processes = [
pid for pid in os.listdir("/proc")
if (
pid.isdigit()
and read_content("/proc/%s/cmdline" %
pid).strip("\0").split("\0") == [
"openscad", scad_file
]
)
]
if len(processes) == 0:
os.system("openscad %s &" % scad_file)

I use this function from PyCharm to open scad files generated by
SolidPython scripts, so far it works well for me.

While it is python and the IntelliJ plugin is Java, I guess it gives a
hint on how it can be done on linux - Mac could be relatively similar,
Windows is a different beast though and I have no idea how it would
work.

Cheers,
Csaba

On Fri, 2020-12-04 at 05:00 +0800, Tim Hawkins wrote:

There is an openscad plugin for InteliJ (which has a community
version) that does full language parsing, colourisation, intellisense
and does file and block re-formatting,. Which uses openscad to do
preview and stl output. It also has full support for git, which find
incredibly confident. I don't use the openscad app much any more as a
result.  The only pain is remembering to close the preview in the
copy of openscad instead of just switching back to the editor, of you
end up spawning lots of copies of scad without realizing it.

It would be cool if it could track the active pid and repeat updates
on that instance so you can have intellij on one screen and openscad
on the other. But that will probaly come.

https://plugins.jetbrains.com/plugin/11198-openscad-language-support

On Wed, Nov 25, 2020, 14:18 Revar Desmera revarbat@gmail.com wrote:

That’d not a bad idea.  Has anyone’s BetterSCAD project integrated
with Eclipse or Atom with a preview window?

  • Revar

On Nov 24, 2020, at 9:42 PM, John Lussmyer <

On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said:

In my experience, the biggest failing of almost other projects

is this space is extremely simple? they expect you to run it from a
command-line.  This is a non-starter for 95% of users on Windows,
and far less than optimal on OS X. It needs to have an GUI
application you can download and run without going to cmd.exe or
Terminal.app. Another frequent flailing is that documentation is
often an afterthought.

I'm still of the opinion that you get a LOT of capability for

free if you write a language parser for Eclipse.

It has all the editor features you can want, just needs to know

the syntax of the language.

--

Bobcats and Cougars, oh my!

Cool, I'm a Linux man aswell On Fri, Dec 4, 2020, 08:12 Csaba Nagy <ncsaba@javampire.com> wrote: > While I was the one to start that IntelliJ plugin, I didn't touch it > for a long time, development and maintenance was taken over by Lucien > Denisey who does a good job on it. Thanks Lucien :-) > > On Linux I have the following python method to achieve detecting an > already running Openscad window with a specific file: > > def open_scad_once(scad_file): > """ > Opens the given file in openscad, if not already open. > :param scad_file: the file to be opened in OpenSCAD > """ > processes = [ > pid for pid in os.listdir("/proc") > if ( > pid.isdigit() > and read_content("/proc/%s/cmdline" % > pid).strip("\0").split("\0") == [ > "openscad", scad_file > ] > ) > ] > if len(processes) == 0: > os.system("openscad %s &" % scad_file) > > I use this function from PyCharm to open scad files generated by > SolidPython scripts, so far it works well for me. > > While it is python and the IntelliJ plugin is Java, I guess it gives a > hint on how it can be done on linux - Mac could be relatively similar, > Windows is a different beast though and I have no idea how it would > work. > > Cheers, > Csaba > > > On Fri, 2020-12-04 at 05:00 +0800, Tim Hawkins wrote: > > There is an openscad plugin for InteliJ (which has a community > > version) that does full language parsing, colourisation, intellisense > > and does file and block re-formatting,. Which uses openscad to do > > preview and stl output. It also has full support for git, which find > > incredibly confident. I don't use the openscad app much any more as a > > result. The only pain is remembering to close the preview in the > > copy of openscad instead of just switching back to the editor, of you > > end up spawning lots of copies of scad without realizing it. > > > > It would be cool if it could track the active pid and repeat updates > > on that instance so you can have intellij on one screen and openscad > > on the other. But that will probaly come. > > > > https://plugins.jetbrains.com/plugin/11198-openscad-language-support > > > > > > On Wed, Nov 25, 2020, 14:18 Revar Desmera <revarbat@gmail.com> wrote: > > > That’d not a bad idea. Has anyone’s BetterSCAD project integrated > > > with Eclipse or Atom with a preview window? > > > > > > - Revar > > > > > > > > > > On Nov 24, 2020, at 9:42 PM, John Lussmyer < > > > Cougar@CasaDelGato.com> wrote: > > > > > > > > On Tue Nov 24 21:34:14 PST 2020 revarbat@gmail.com said: > > > >> In my experience, the biggest failing of almost other projects > > > is this space is extremely simple? they expect you to run it from a > > > command-line. This is a non-starter for 95% of users on Windows, > > > and far less than optimal on OS X. It needs to have an GUI > > > application you can download and run without going to cmd.exe or > > > Terminal.app. Another frequent flailing is that documentation is > > > often an afterthought. > > > > > > > > I'm still of the opinion that you get a LOT of capability for > > > free if you write a language parser for Eclipse. > > > > It has all the editor features you can want, just needs to know > > > the syntax of the language. > > > > > > > > > > > > -- > > > > > > > > Bobcats and Cougars, oh my! > > > > http://john.casadelgato.com/Pets_______________________________________________ > > > > OpenSCAD mailing list > > > > Discuss@lists.openscad.org > > > > > > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > > > > > > _______________________________________________ > > > OpenSCAD mailing list > > > Discuss@lists.openscad.org > > > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > _______________________________________________ > > OpenSCAD mailing list > > Discuss@lists.openscad.org > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >