This PR adds the same functionality as provided by Part Extrude.
The used code parts are sorted out to a new helper function that is used by Part and PartDesign.
- there can be strange cases with structures all intersecting each other. Their extrusion has no practical use case but we must avoid that such structures results either in an infinite loop or in an invalid geometric result.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
=============================================================================================
Use the geometry specific D0 to calculate value at parameter point.
When the spine line of the sweep operation of the part workbench depends
on the Sketcher document, if the dependent spine line drawn by this document
is deleted afterwards, the path variable will get a null pointer.
Due to programming errors, the standard judgment of this pointer is ignored, resulting in a crash.
Call IsNull() of the OCC document to determine the legitimacy of the shape.
If it is empty, an error is reported.
Fixes#0004764