You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was trying to estimate the build time for part with supports ( generated with PySLM). The support were first exported with ( taking the base of the tutorial)
'''
meshSupports = []
for supportBlock in supportBlockRegions:
supportBlock.mergeMesh = False
supportBlock.useSupportSkin = True
meshSupports.append(supportBlock.geometry())
However, when I try to use the resulting stl file to estimate the build time ( from the tutoriel example_build_time_analysis.py) I get the following error
'''
WARNING:root:The geometry for FrameGuide is not watertight
JEB_101_ROTATED_overhangSupport_Full.stl
Beginning Slicing
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: invalid value encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\constructive.py:180: RuntimeWarning: divide by zero encountered in buffer
return lib.buffer(
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 35, in calculateLayer
solidPart = d['part']
~^^^^^^^^
File "", line 2, in getitem
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\managers.py", line 828, in _callmethod
kind, result = conn.recv()
^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 250, in recv
buf = self._recv_bytes()
^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
return self._get_more_data(ov, maxsize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 353, in _get_more_data
assert left > 0
^^^^^^^^
AssertionError
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 150, in
main()
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 82, in main
layers = p.map(calculateLayer, processList)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 774, in get
raise self._value
AssertionError
'''
I would be keen to share stl file of the object and the supports, but apparently it is not possible to do so here...
The text was updated successfully, but these errors were encountered:
From your issue request, it is not fully clear how you are slicing and the hatching the supports structures you have generated.
You need to separately slice the generated support structures, rather than operating on the meshes separately. Using the pyslm.support.GridBlockSuppor.slice() method will produce contours in sequential order that correspond to the boundaries/contours of the grid truss support structures. The can form LayerGeometry features that can form Layer structures. This correctly accounts for having the correct sequential scan order and jumping order which is more accurately calculated.
Upon having the Layer structure, this may be used with pyslm.analysis.getLayerTime in order to calculate the total build time as documented previously within the PySLM examples.
Alternatively, an approximate scan time is proportional to the surface area of the grid-truss support structure, given these represent single scan paths, rather than a solid-infill.
Thank your for your support on this topic.
I was trying to hatch and slice the supports using the example script for build time estimation, which does not run successful because support meshes obtained as indicated are not watertight.
I will try the approach that you suggest, but the workaround I found is to
Compute area of support structures and convert it to a volume by multiplying by a beam thickness.
Obtain the actual volume fraction of the support structure by comparing to the volume of the block supports.
Now I am trying to find a way to use to estimate the build time of the support using the .stl file of the block supports.
Hi,
I was trying to estimate the build time for part with supports ( generated with PySLM). The support were first exported with ( taking the base of the tutorial)
'''
meshSupports = []
for supportBlock in supportBlockRegions:
supportBlock.mergeMesh = False
supportBlock.useSupportSkin = True
meshSupports.append(supportBlock.geometry())
FullMeshSupport = trimesh.util.concatenate(meshSupports)
FullMeshSupport.export(STL.split(".")[0] + '_overhangSupport_Full.stl')
'''
However, when I try to use the resulting stl file to estimate the build time ( from the tutoriel example_build_time_analysis.py) I get the following error
'''
WARNING:root:The geometry for FrameGuide is not watertight
JEB_101_ROTATED_overhangSupport_Full.stl
Beginning Slicing
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: invalid value encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\constructive.py:180: RuntimeWarning: divide by zero encountered in buffer
return lib.buffer(
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\site-packages\shapely\predicates.py:526: RuntimeWarning: divide by zero encountered in contains
return lib.contains(a, b, **kwargs)
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 35, in calculateLayer
solidPart = d['part']
~^^^^^^^^
File "", line 2, in getitem
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\managers.py", line 828, in _callmethod
kind, result = conn.recv()
^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 250, in recv
buf = self._recv_bytes()
^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 334, in _recv_bytes
return self._get_more_data(ov, maxsize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\connection.py", line 353, in _get_more_data
assert left > 0
^^^^^^^^
AssertionError
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 150, in
main()
File "C:\Users\E129000\OneDrive - RMIT University\Documents\Codes\CADs\JEB_Dataset\Supports\TRUSS\ComputeBuildTimeEstimate.py", line 82, in main
layers = p.map(calculateLayer, processList)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\E129000\AppData\Local\anaconda3\envs\PYSLM\Lib\multiprocessing\pool.py", line 774, in get
raise self._value
AssertionError
'''
I would be keen to share stl file of the object and the supports, but apparently it is not possible to do so here...
The text was updated successfully, but these errors were encountered: