Sheet Metal Workbench

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
FredOP
Posts: 65
Joined: Sat Sep 26, 2020 1:25 pm

What can Sheetmetal unfold ?

Post by FredOP »

Is there a kind of geometry that SM is more likely to manage to unfold ? I’m talking about an object that is not generated from a simple padded sketch + bend / extend tools in SM.
For example, could it unfold somehow a platonic solid ?
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: What can Sheetmetal unfold ?

Post by Kunda1 »

FredOP wrote: Mon Oct 26, 2020 11:19 pm Is there a kind of geometry that SM is more likely to manage to unfold ? I’m talking about an object that is not generated from a simple padded sketch + bend / extend tools in SM.
For example, could it unfold somehow a platonic solid ?
Merged the above question in to the main SheetMetal thread.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Sheet Metal Workbench

Post by -alex- »

Hi guys, I've opened a topic some times ago about a square-round part: https://forum.freecadweb.org/viewtopic. ... 93#p290885
Now, thanks to the new behavior of SubShapeBinder introduced recently by @realthunder on this LinkStage3 branch (https://forum.freecadweb.org/viewtopic. ... 54#p439205) it is possible to get a workflow 100% parametric for such a part ("tesselated parts", I mean sheetmetal parts modelized from 2D shell).
realthunder wrote:ping
jaisejames wrote:ping
But I fail to unfold it, I assume that's due to the non standard of LinkStage3 branch maybe ?...
I get an error "failed to unfold". Sorry, I can't paste error messages from report view because I can't access FC right now. I can't share the 100% parametric square-round part neither for now, but I will.
Please donwload the "rondcarre" file following the link above then try to unfold the "Cut" feature with LinkStage3 branch, you will get the error. If you make a Part_SimpleCopy from "Cut" the issue remaine.
But there is a workaround: export the "Cut" feature as step format then import it, then unfold works like a charm.

If you consider this issue offtopic because it is related to LinkStage3 branche please let me know, I will open a new topic.


FC 0.19 LinkStage3 branch daily 2020-10-22
Win7
I will post more informations about code error and the parametric squarre-round when I will acces FC...
Thanks for your attention.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Sheet Metal Workbench

Post by realthunder »

-alex- wrote: Thu Oct 29, 2020 11:49 pm But I fail to unfold it, I assume that's due to the non standard of LinkStage3 branch maybe ?...
Can you please post a sample file here. I'll take a look
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Sheet Metal Workbench

Post by -alex- »

realthunder wrote: Tue Nov 03, 2020 1:06 pm Can you please post a sample file here. I'll take a look
Sure, as soon I can access a computer and FC-Link I will send the file (today I hope...).
Thanks for your attention.
Stay tuned!

Edit: ahh, I'm definitely not lucky, my old x86 computer (with your linkstage3 branch compiled on it) fails today: Debian is out of order (BIOS corrupted maybe, anyway...) :cry:
I will backup the file tomorrow, I'm not sure to be able to paste the error message though :?
See you tomorrow.
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Sheet Metal Workbench

Post by -alex- »

Ok I'm back, thanks to you @realthunder I'm now able to open the file again by using your Linkstage3 branch on my cute n tiny RPI4 :D
Here is the sheetmetal square-round part with full parametrical workflow, but which fail to unfold with Sheetmetal WB. Maybe my workflow is too much fancy?...
FC-Link-sheetmetal_square_round.gif
FC-Link-sheetmetal_square_round.gif (542.67 KiB) Viewed 1319 times
FC-Link-sheetmetal_parametric_square_round.FCStd
(127.12 KiB) Downloaded 56 times

Here is stdout:

Code: Select all

pi@raspberrypi:~/freecadlink-build/bin $ ./FreeCAD
FreeCAD 0.19, Libs: 0.19R25467 (Git)
�� Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2020
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

Loading Assembly4 WorkBench
Sheet Metal workbench loaded

(process:31576): Gtk-WARNING **: 00:37:17.213: Locale not supported by C library.
	Using the fallback 'C' locale.
<Command> Command.cpp(1839): duplicate command Std_TreePreSelection
<Command> Command.cpp(1839): duplicate command Std_TreeSelectAllInstances
connect failed: No such file or directory
Engineering mode is enabled.
Manual K-factor is being used: 0.30 (din)
exception at line 2876('list indices must be integers or slices, not NoneType',)
('list indices must be integers or slices, not NoneType',)
Traceback (most recent call last):
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2876, in accept
    s, foldComp, norm, thename, err_cd, fSel, obN  = getUnfold(k_factor_lookup)
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2174, in getUnfold
    TheTree.Bend_analysis(f_number, None) # traverses the shape and builds the tree-structure
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1329, in Bend_analysis
    self.Bend_analysis(child_info[0], t_node, child_info[1])
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1329, in Bend_analysis
    self.Bend_analysis(child_info[0], t_node, child_info[1])
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1329, in Bend_analysis
    self.Bend_analysis(child_info[0], t_node, child_info[1])
  [Previous line repeated 9 more times]
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1320, in Bend_analysis
    t_node = self.make_new_face_node(face_idx, parent_node, parent_edge, wires_edge_lists)
  File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1103, in make_new_face_node
    oppVertIndexes = range(len(self.__Shape.Faces[newNode.c_face_idx].Vertexes))
TypeError: list indices must be integers or slices, not NoneType
The error occurs on system below (Raspberry PI4) and on Win7 as well.

Thank you for your attention.

Sheetmetal WB V0.2.43

OS: Debian GNU/Linux 10 (buster) (LXDE/LXDE-pi)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.25467 (Git)
Build type: Unknown
Branch: LinkStage3
Hash: 153b298a1cb52f5040fdc0ac371173586d2a2686
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)
User avatar
easyw-fc
Veteran
Posts: 3633
Joined: Thu Jul 09, 2015 9:34 am

Re: Sheet Metal Workbench

Post by easyw-fc »

it does seem to work if you export and re-import the model as step and then unfold it
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Sheet Metal Workbench

Post by -alex- »

easyw-fc wrote: Thu Nov 05, 2020 8:19 am it does seem to work if you export and re-import the model as step and then unfold it
Yes correct, this workarround worked also for me on Win7 system but does not work on my RPI4 system .
That's why I didn't mentioned about it.
I've got the same error when trying to unfold a reimported step on RPI4 :|
User avatar
papyblaise
Veteran
Posts: 8015
Joined: Thu Jun 13, 2019 4:28 pm
Location: France

Re: Sheet Metal Workbench

Post by papyblaise »

on this French site I have proposed a method to make this hood, which unfolds perfectly
https://forum.freecadweb.org/viewtopic.php?f=12&t=51691

I can't unfold if I make a hole in the side, I know why; SheetMetal does not unfold if a bend radius is cut
I also noticed that if I make a hole after folding, as for example in the large central triangle, does not work either
the solution is to make the hole immediately after the fold concerned, then continue to make the following folds
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Sheet Metal Workbench

Post by -alex- »

easyw-fc wrote: Thu Nov 05, 2020 8:19 am it does seem to work if you export and re-import the model as step and then unfold it
FC-Link-sheetmetal_parametric_square_round-unfolded.FCStd
So, I downloaded your unfolded model, but I fail to unfold re-imported Cut001 object, on RPI4 I get:

Code: Select all

3:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Body
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Sketch
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Sketch001
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder001
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder002
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder003
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder004
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Binder005
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Facebinder
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Part__Mirroring
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Facebinder001
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Offset
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Offset001
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Cylinder
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Cut
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Cut_material_0_30din_sc
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Part__Feature
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Unfold
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Unfold_Sketch
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Unfold_Sketch_Outline
23:15:38  <PropShape> PropertyTopoShape.cpp(393): Pending recompute for generating element map: FC_Link_sheetmetal_parametric_square_round_unfolded#Unfold_Sketch_bends
23:15:50  <App> GeoFeatureGroupExtension.cpp(571): FC_Link_sheetmetal_parametric_square_round_unfolded#Facebinder.Faces(links to FC_Link_sheetmetal_parametric_square_round_unfolded#Binder) is out of scope:FC_Link_sheetmetal_parametric_square_round_unfolded#Body vs. <global>
23:16:35  Engineering mode is enabled.
23:16:45  Manual K-factor is being used: 0.30 (din)
23:16:45  15StdFail_NotDone BRep_API: command not done
23:16:45  exception at line 2876('15StdFail_NotDone BRep_API: command not done',)
23:16:45  ('15StdFail_NotDone BRep_API: command not done',)
23:16:45  Traceback (most recent call last):
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1688, in unbendFace
    theFace = Part.Face(myWire)
23:16:45  Part.OCCError: Failed to create face from wire
23:16:45  
During handling of the above exception, another exception occurred:

23:16:45  Traceback (most recent call last):
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2876, in accept
    s, foldComp, norm, thename, err_cd, fSel, obN  = getUnfold(k_factor_lookup)
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2180, in getUnfold
    theFaceList, foldLines = TheTree.unfold_tree2(TheTree.root) # traverses the tree-structure
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2049, in unfold_tree2
    shell, foldLines = self.unfold_tree2(n_node)
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2049, in unfold_tree2
    shell, foldLines = self.unfold_tree2(n_node)
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2049, in unfold_tree2
    shell, foldLines = self.unfold_tree2(n_node)
23:16:45    [Previous line repeated 8 more times]
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 2062, in unfold_tree2
    nodeShell, nodeFoldLines = self.generateBendShell2(node)
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1938, in generateBendShell2
    bFace = self.unbendFace(i, bend_node, nullVec)
23:16:45    File "/home/pi/.FreeCAD/Mod/sheetmetal/SheetMetalUnfolder.py", line 1699, in unbendFace
    theFace = Part.makeFilledFace(thirdWireList)
23:16:45  Part.OCCError: 15StdFail_NotDone BRep_API: command not done
23:16:45  
OS: Debian GNU/Linux 10 (buster) (LXDE/LXDE-pi)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.25467 (Git)
Build type: Unknown
Branch: LinkStage3
Hash: 153b298a1cb52f5040fdc0ac371173586d2a2686
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)


However I success to unfold re-imported Cut001 object from step format on RPI4 but with FC master:

OS: Debian GNU/Linux 10 (buster) (LXDE/LXDE-pi)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21804 (Git)
Build type: Unknown
Branch: master
Hash: 8b2044aa13807709989fe08a2b5c3394f5a04941
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)

So, IMHO the issue seems related to Linkstage3 branch
realthunder wrote:ping
Somehow I don't success to unfold the original parametric Cut object with master branch neither with Linkstage3 branch.
Post Reply