Discussion:
[OpenSCAD] Preview working but render fails for difference()
Experimentalist
2018-10-02 11:09:48 UTC
Permalink
I am having an issue where a part will preview satisfactorily but renders
incorrectly. It has similarities to this issue:

https://github.com/openscad/openscad/issues/1591

I have tried on two different Dell PCs, one Optiplex 7010 and the other a
Latitude E6530. Both have Intel HD Graphics 4000 cards. I am using the most
up to date graphics drivers I can get to install.

I have tried using both these versions:

OpenSCAD version 2015.03-2
OpenSCAD version 2018.09.05 (git 40af343)

Reading the above issue I have tried with and without the "Force Goldfeather
setting having no success either way with either version

I have attached the files needed to replicate the issue:

Modify.scad <http://forum.openscad.org/file/t1222/Modify.scad>
Holder_re-rendered_using_OpenSCAD.stl
<http://forum.openscad.org/file/t1222/Holder_re-rendered_using_OpenSCAD.stl>
Holder_as_rendered.stl
<http://forum.openscad.org/file/t1222/Holder_as_rendered.stl>

Here is the library info for the OPtiplex 7010 using OpenSCAD version
2018.09.05 (git 40af343) :

OpenSCAD Version: 2018.09.05 (git 40af343)
System information: Windows(TM) 10.0 SP 0.0 NTW 1 MSDN 724833 4 CPUs 3.89 GB
RAM
Compiler: GCC "7.3.0" 64bit
Boost version: 1_60
Eigen version: 3.2.5
CGAL version, kernels: 4.11, Cartesian, Extended_cartesian, Epeck
OpenCSG version: OpenCSG 1.4.2
Qt version: 5.11.1
QScintilla version: 2.10.4
MingW build: MingW64
GLib version: 2.50.2
libzip version: 1.5.1
Application Path: C:/Program Files/OpenSCAD
Documents Path: C:\Users\Andy\Documents
Resource Path: C:/Program Files/OpenSCAD
User Library Path: C:/Users/Andy/Documents/OpenSCAD/libraries
User Config Path: C:\Users\Andy\AppData\Local/OpenSCAD
Backup Path: C:/Users/Andy/Documents/OpenSCAD/backups
OPENSCADPATH:
OpenSCAD library path:
C:/Users/Andy/Documents/OpenSCAD/libraries
C:/Program Files/OpenSCAD\libraries

OPENSCAD_FONT_PATH:
OpenSCAD font path:
GLEW version: 1.12.0
OpenGL Version: 4.0.0 - Build 10.18.10.4885
GL Renderer: Intel(R) HD Graphics 4000
GL Vendor: Intel
RGBA(8888), depth(24), stencil(8)
GL_ARB_framebuffer_object: yes
GL_EXT_framebuffer_object: yes
GL_EXT_packed_depth_stencil: yes

Qt graphics widget: QGLWidgetGL Extensions:
GL_3DFX_texture_compression_FXT1
GL_ARB_ES2_compatibility
GL_ARB_ES3_compatibility
GL_ARB_arrays_of_arrays
GL_ARB_base_instance
GL_ARB_blend_func_extended
GL_ARB_buffer_storage
GL_ARB_color_buffer_float
GL_ARB_compatibility
GL_ARB_compressed_texture_pixel_storage
GL_ARB_conservative_depth
GL_ARB_copy_buffer
GL_ARB_debug_output
GL_ARB_depth_buffer_float
GL_ARB_depth_clamp
GL_ARB_depth_texture
GL_ARB_draw_buffers
GL_ARB_draw_buffers_blend
GL_ARB_draw_elements_base_vertex
GL_ARB_draw_indirect
GL_ARB_draw_instanced
GL_ARB_explicit_attrib_location
GL_ARB_fragment_coord_conventions
GL_ARB_fragment_program
GL_ARB_fragment_program_shadow
GL_ARB_fragment_shader
GL_ARB_framebuffer_no_attachments
GL_ARB_framebuffer_object
GL_ARB_framebuffer_sRGB
GL_ARB_geometry_shader4
GL_ARB_get_program_binary
GL_ARB_gpu_shader5
GL_ARB_gpu_shader_fp64
GL_ARB_half_float_pixel
GL_ARB_half_float_vertex
GL_ARB_instanced_arrays
GL_ARB_internalformat_query
GL_ARB_internalformat_query2
GL_ARB_map_buffer_alignment
GL_ARB_map_buffer_range
GL_ARB_multi_draw_indirect
GL_ARB_multisample
GL_ARB_multitexture
GL_ARB_occlusion_query
GL_ARB_occlusion_query2
GL_ARB_pixel_buffer_object
GL_ARB_point_parameters
GL_ARB_point_sprite
GL_ARB_program_interface_query
GL_ARB_provoking_vertex
GL_ARB_robustness
GL_ARB_sample_shading
GL_ARB_sampler_objects
GL_ARB_seamless_cube_map
GL_ARB_separate_shader_objects
GL_ARB_shader_atomic_counters
GL_ARB_shader_bit_encoding
GL_ARB_shader_objects
GL_ARB_shader_precision
GL_ARB_shader_subroutine
GL_ARB_shading_language_100
GL_ARB_shading_language_420pack
GL_ARB_shading_language_packing
GL_ARB_shadow
GL_ARB_stencil_texturing
GL_ARB_sync
GL_ARB_tessellation_shader
GL_ARB_texture_border_clamp
GL_ARB_texture_buffer_object_rgb32
GL_ARB_texture_buffer_range
GL_ARB_texture_compression
GL_ARB_texture_compression_bptc
GL_ARB_texture_compression_rgtc
GL_ARB_texture_cube_map
GL_ARB_texture_cube_map_array
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3
GL_ARB_texture_float
GL_ARB_texture_gather
GL_ARB_texture_multisample
GL_ARB_texture_non_power_of_two
GL_ARB_texture_query_lod
GL_ARB_texture_rectangle
GL_ARB_texture_rg
GL_ARB_texture_rgb10_a2ui
GL_ARB_texture_storage
GL_ARB_texture_storage_multisample
GL_ARB_texture_swizzle
GL_ARB_timer_query
GL_ARB_transform_feedback2
GL_ARB_transform_feedback3
GL_ARB_transform_feedback_instanced
GL_ARB_transpose_matrix
GL_ARB_uniform_buffer_object
GL_ARB_vertex_array_bgra
GL_ARB_vertex_array_object
GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_attrib_binding
GL_ARB_vertex_buffer_object
GL_ARB_vertex_program
GL_ARB_vertex_shader
GL_ARB_vertex_type_2_10_10_10_rev
GL_ARB_viewport_array
GL_ARB_window_pos
GL_ATI_separate_stencil
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_draw_buffers2
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample
GL_EXT_framebuffer_object
GL_EXT_geometry_shader4
GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4
GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil
GL_EXT_packed_float
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shader_integer_mix
GL_EXT_shadow_funcs
GL_EXT_stencil_two_side
GL_EXT_stencil_wrap
GL_EXT_texture3D
GL_EXT_texture_array
GL_EXT_texture_buffer
GL_EXT_texture_compression_s3tc
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_integer
GL_EXT_texture_lod_bias
GL_EXT_texture_rectangle
GL_EXT_texture_sRGB
GL_EXT_texture_sRGB_decode
GL_EXT_texture_shared_exponent
GL_EXT_texture_snorm
GL_EXT_texture_storage
GL_EXT_texture_swizzle
GL_EXT_transform_feedback
GL_IBM_texture_mirrored_repeat
GL_INTEL_map_texture
GL_INTEL_performance_queries
GL_INTEL_performance_query
GL_KHR_blend_equation_advanced
GL_KHR_debug
GL_NV_blend_square
GL_NV_conditional_render
GL_NV_primitive_restart
GL_NV_texgen_reflection
GL_SGIS_generate_mipmap
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
GL_SUN_multi_draw_arrays
GL_WIN_swap_hint
WGL_ARB_buffer_region
WGL_ARB_create_context
WGL_ARB_create_context_profile
WGL_ARB_create_context_robustness
WGL_ARB_extensions_string
WGL_ARB_framebuffer_sRGB
WGL_ARB_make_current_read
WGL_ARB_multisample
WGL_ARB_pbuffer
WGL_ARB_pixel_format
WGL_ARB_pixel_format_float
WGL_EXT_create_context_es2_profile
WGL_EXT_create_context_es_profile
WGL_EXT_depth_float
WGL_EXT_extensions_string
WGL_EXT_pixel_format_packed_float
WGL_EXT_swap_control
WGL_EXT_swap_control_tear
WGL_NV_DX_interop

Any ideas on what I could try?



--
Sent from: http://forum.openscad.org/
nop head
2018-10-02 11:55:56 UTC
Permalink
Yes it does seem to be a bug. Preview is correct. The render includes the
negative objects and so does the exported STL, which is then not manifold
according to NetFabb.

[image: image.png]

I can't find anything wrong with the original STL but it seems to confuse
GGAL.

Even weirder things happen if I union the STL with large cube([400,100,
20], center = true) in MyImport();

Then the cube gets subtracted and the cylinders added. It's like difference
is working backwards. I wonder if the original STL is inside out and
NetFabb doesn't tell me?




On Tue, 2 Oct 2018 at 12:10, Experimentalist <
Post by Experimentalist
I am having an issue where a part will preview satisfactorily but renders
https://github.com/openscad/openscad/issues/1591
I have tried on two different Dell PCs, one Optiplex 7010 and the other a
Latitude E6530. Both have Intel HD Graphics 4000 cards. I am using the most
up to date graphics drivers I can get to install.
OpenSCAD version 2015.03-2
OpenSCAD version 2018.09.05 (git 40af343)
Reading the above issue I have tried with and without the "Force Goldfeather
setting having no success either way with either version
Modify.scad <http://forum.openscad.org/file/t1222/Modify.scad>
Holder_re-rendered_using_OpenSCAD.stl
<
http://forum.openscad.org/file/t1222/Holder_re-rendered_using_OpenSCAD.stl>
Holder_as_rendered.stl
<http://forum.openscad.org/file/t1222/Holder_as_rendered.stl>
Here is the library info for the OPtiplex 7010 using OpenSCAD version
OpenSCAD Version: 2018.09.05 (git 40af343)
System information: Windows(TM) 10.0 SP 0.0 NTW 1 MSDN 724833 4 CPUs 3.89 GB
RAM
Compiler: GCC "7.3.0" 64bit
Boost version: 1_60
Eigen version: 3.2.5
CGAL version, kernels: 4.11, Cartesian, Extended_cartesian, Epeck
OpenCSG version: OpenCSG 1.4.2
Qt version: 5.11.1
QScintilla version: 2.10.4
MingW build: MingW64
GLib version: 2.50.2
libzip version: 1.5.1
Application Path: C:/Program Files/OpenSCAD
Documents Path: C:\Users\Andy\Documents
Resource Path: C:/Program Files/OpenSCAD
User Library Path: C:/Users/Andy/Documents/OpenSCAD/libraries
User Config Path: C:\Users\Andy\AppData\Local/OpenSCAD
Backup Path: C:/Users/Andy/Documents/OpenSCAD/backups
C:/Users/Andy/Documents/OpenSCAD/libraries
C:/Program Files/OpenSCAD\libraries
GLEW version: 1.12.0
OpenGL Version: 4.0.0 - Build 10.18.10.4885
GL Renderer: Intel(R) HD Graphics 4000
GL Vendor: Intel
RGBA(8888), depth(24), stencil(8)
GL_ARB_framebuffer_object: yes
GL_EXT_framebuffer_object: yes
GL_EXT_packed_depth_stencil: yes
GL_3DFX_texture_compression_FXT1
GL_ARB_ES2_compatibility
GL_ARB_ES3_compatibility
GL_ARB_arrays_of_arrays
GL_ARB_base_instance
GL_ARB_blend_func_extended
GL_ARB_buffer_storage
GL_ARB_color_buffer_float
GL_ARB_compatibility
GL_ARB_compressed_texture_pixel_storage
GL_ARB_conservative_depth
GL_ARB_copy_buffer
GL_ARB_debug_output
GL_ARB_depth_buffer_float
GL_ARB_depth_clamp
GL_ARB_depth_texture
GL_ARB_draw_buffers
GL_ARB_draw_buffers_blend
GL_ARB_draw_elements_base_vertex
GL_ARB_draw_indirect
GL_ARB_draw_instanced
GL_ARB_explicit_attrib_location
GL_ARB_fragment_coord_conventions
GL_ARB_fragment_program
GL_ARB_fragment_program_shadow
GL_ARB_fragment_shader
GL_ARB_framebuffer_no_attachments
GL_ARB_framebuffer_object
GL_ARB_framebuffer_sRGB
GL_ARB_geometry_shader4
GL_ARB_get_program_binary
GL_ARB_gpu_shader5
GL_ARB_gpu_shader_fp64
GL_ARB_half_float_pixel
GL_ARB_half_float_vertex
GL_ARB_instanced_arrays
GL_ARB_internalformat_query
GL_ARB_internalformat_query2
GL_ARB_map_buffer_alignment
GL_ARB_map_buffer_range
GL_ARB_multi_draw_indirect
GL_ARB_multisample
GL_ARB_multitexture
GL_ARB_occlusion_query
GL_ARB_occlusion_query2
GL_ARB_pixel_buffer_object
GL_ARB_point_parameters
GL_ARB_point_sprite
GL_ARB_program_interface_query
GL_ARB_provoking_vertex
GL_ARB_robustness
GL_ARB_sample_shading
GL_ARB_sampler_objects
GL_ARB_seamless_cube_map
GL_ARB_separate_shader_objects
GL_ARB_shader_atomic_counters
GL_ARB_shader_bit_encoding
GL_ARB_shader_objects
GL_ARB_shader_precision
GL_ARB_shader_subroutine
GL_ARB_shading_language_100
GL_ARB_shading_language_420pack
GL_ARB_shading_language_packing
GL_ARB_shadow
GL_ARB_stencil_texturing
GL_ARB_sync
GL_ARB_tessellation_shader
GL_ARB_texture_border_clamp
GL_ARB_texture_buffer_object_rgb32
GL_ARB_texture_buffer_range
GL_ARB_texture_compression
GL_ARB_texture_compression_bptc
GL_ARB_texture_compression_rgtc
GL_ARB_texture_cube_map
GL_ARB_texture_cube_map_array
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3
GL_ARB_texture_float
GL_ARB_texture_gather
GL_ARB_texture_multisample
GL_ARB_texture_non_power_of_two
GL_ARB_texture_query_lod
GL_ARB_texture_rectangle
GL_ARB_texture_rg
GL_ARB_texture_rgb10_a2ui
GL_ARB_texture_storage
GL_ARB_texture_storage_multisample
GL_ARB_texture_swizzle
GL_ARB_timer_query
GL_ARB_transform_feedback2
GL_ARB_transform_feedback3
GL_ARB_transform_feedback_instanced
GL_ARB_transpose_matrix
GL_ARB_uniform_buffer_object
GL_ARB_vertex_array_bgra
GL_ARB_vertex_array_object
GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_attrib_binding
GL_ARB_vertex_buffer_object
GL_ARB_vertex_program
GL_ARB_vertex_shader
GL_ARB_vertex_type_2_10_10_10_rev
GL_ARB_viewport_array
GL_ARB_window_pos
GL_ATI_separate_stencil
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_draw_buffers2
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample
GL_EXT_framebuffer_object
GL_EXT_geometry_shader4
GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4
GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil
GL_EXT_packed_float
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shader_integer_mix
GL_EXT_shadow_funcs
GL_EXT_stencil_two_side
GL_EXT_stencil_wrap
GL_EXT_texture3D
GL_EXT_texture_array
GL_EXT_texture_buffer
GL_EXT_texture_compression_s3tc
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_integer
GL_EXT_texture_lod_bias
GL_EXT_texture_rectangle
GL_EXT_texture_sRGB
GL_EXT_texture_sRGB_decode
GL_EXT_texture_shared_exponent
GL_EXT_texture_snorm
GL_EXT_texture_storage
GL_EXT_texture_swizzle
GL_EXT_transform_feedback
GL_IBM_texture_mirrored_repeat
GL_INTEL_map_texture
GL_INTEL_performance_queries
GL_INTEL_performance_query
GL_KHR_blend_equation_advanced
GL_KHR_debug
GL_NV_blend_square
GL_NV_conditional_render
GL_NV_primitive_restart
GL_NV_texgen_reflection
GL_SGIS_generate_mipmap
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
GL_SUN_multi_draw_arrays
GL_WIN_swap_hint
WGL_ARB_buffer_region
WGL_ARB_create_context
WGL_ARB_create_context_profile
WGL_ARB_create_context_robustness
WGL_ARB_extensions_string
WGL_ARB_framebuffer_sRGB
WGL_ARB_make_current_read
WGL_ARB_multisample
WGL_ARB_pbuffer
WGL_ARB_pixel_format
WGL_ARB_pixel_format_float
WGL_EXT_create_context_es2_profile
WGL_EXT_create_context_es_profile
WGL_EXT_depth_float
WGL_EXT_extensions_string
WGL_EXT_pixel_format_packed_float
WGL_EXT_swap_control
WGL_EXT_swap_control_tear
WGL_NV_DX_interop
Any ideas on what I could try?
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Experimentalist
2018-10-02 12:51:01 UTC
Permalink
The original STL was created using another OpenSCAD script which I attach
below for reference:

pegstr.scad <http://forum.openscad.org/file/t1222/pegstr.scad>

Although the output of pegstr.scad is manifold it showed some degenerated
faces in netfabb so I still tried repairing it using:

netfabb Basic 6.4.0 252
i386/Win32 (2015/09/11)

. . . weird indeed



--
Sent from: http://forum.openscad.org/
cbernhardt
2018-10-04 19:29:31 UTC
Permalink
I do not know why it works, but if you rotate the imported STL file 180°
about the X axis, it renders correctly. At least it works on my version
2015.03.2 ?????
<Loading Image...>



--
Sent from: http://forum.openscad.org/
Experimentalist
2018-10-08 09:26:52 UTC
Permalink
It renders correctly?



--
Sent from: http://forum.openscad.org/
cbernhardt
2018-10-08 16:53:31 UTC
Permalink
Post by Experimentalist
It renders correctly?
Yes. If you look at the picture I posted, you will see "Rendering finished"
at the bottom. Also note the orientation of the X-Y-Z axis. I rotated the
rendering so that it appears "right side up".




--
Sent from: http://forum.openscad.org/
Carsten Arnholm
2018-10-04 18:04:49 UTC
Permalink
Post by Experimentalist
I am having an issue where a part will preview satisfactorily but renders
STL files contain single precision coordinates and are generally not
well suited as input for further booleans...

In this case, your file "Holder_as_rendered.stl" is in my tool reported
as having 48 collapsed or zero area faces. This classification is
obviously subject to tolerances and interpretation.

A face is here 'collapsed' if one edge is shorter than the distance
tolerance (default=0.01) and has zero area if the computed area is less
than the area tolerance (default 1.0E-6). 48 of the faces in your file
failed one or both of these checks.

I uploaded a version of your file with those faces removed, you can get
it at (expires 2018-10-09 @ 18:00:06 GMT)

http://www.fileconvoy.com/dfl.php?id=g8a527fc901f5514a1000118775cefd6b3332589010

(The uploaded file is compressed in a zip file)

Carsten Arnholm
Experimentalist
2018-10-08 09:28:49 UTC
Permalink
Hi

Thanks a lot for that, I downloaded the file. May I ask what program you
used to analyse and fix the file?

Ex.





--
Sent from: http://forum.openscad.org/
a***@arnholm.org
2018-10-08 11:11:06 UTC
Permalink
Post by Experimentalist
Hi
Thanks a lot for that, I downloaded the file. May I ask what program you
used to analyse and fix the file?
So the fixed file solved the problem you had?

I wrote that program myself from scratch. Its current working name is
abm_polyfix. I have been meaning to provide a service on the web where
this tool could be used, but it has taken longer than anticipated.

Carsten Arnholm
Experimentalist
2018-10-17 22:32:18 UTC
Permalink
Sorry for the slow reply

Yes it fixed it, thanks.



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

Loading...