SolidCode / SolidPython

A python frontend for solid modelling that compiles to OpenSCAD
1.1k stars 171 forks source link

Putting the original code in the scad file can break the parser #210

Open ali1234 opened 2 weeks ago

ali1234 commented 2 weeks ago

Example:

import solid

glob = "**/*"

x = solid.cube()
solid.scad_render_to_file(x, "test.scad")
y = solid.include("test.scad")

Result:

py_scadparser: Illegal character: test.scad(11) """
py_scadparser: Syntax error: test.scad(14) ID - solid
py_scadparser: Syntax error: test.scad(15) INCLUDE - include
py_scadparser: Syntax error: test.scad(18) / - /

This happens because the default is to save the solidpython code to the output, but in this case the code contains a glob, which looks like a comment terminator, which messes up the parser in solidpython. I haven't tested openscad on these files. Generally the way you fix this is with heredoc, but I think this would require support from openscad side.

jeff-dh commented 2 weeks ago

solid2 should not have this issue (since it does not append the solidpython code to the scad file)

https://github.com/jeff-dh/SolidPython/tree/master-2.0.0-beta-dev

(I don't really see the need to append the solidpython code to the generated code)

PS: I don't really get what you mean with heredoc.