3dPrinting :
- correzioni a CalcToolPath.
This commit is contained in:
+27
-23
@@ -15,7 +15,8 @@ local AMD = require( 'AddManData')
|
||||
---------------------------------------------------------------------
|
||||
local function GetLayerParamsForToolPathCalc()
|
||||
local nParamsGrp = EgtGetFirstNameInGroup( GDB_ID.ROOT, PARAMS_GRP)
|
||||
local LayerParams = {}
|
||||
local LayerParams = {}
|
||||
LayerParams.dStrand = EgtGetInfo( nParamsGrp, KEY_STRAND, 'd')
|
||||
LayerParams.dLayHeight = EgtGetInfo( nParamsGrp, KEY_SLICE_STEP, 'd')
|
||||
LayerParams.bInvert = EgtGetInfo( nParamsGrp, KEY_PRINT_DIRECTION, 'b')
|
||||
LayerParams.nOrder = EgtGetInfo( nParamsGrp, KEY_PRINT_ORDER, 'i')
|
||||
@@ -147,28 +148,31 @@ function CalcToolPath.Exec( nPartId)
|
||||
local nPrevId = EgtGetFirstInGroup( nTpathGrpId)
|
||||
local nCurrId = EgtGetNext( nPrevId or GDB_ID.NULL)
|
||||
local k = 0
|
||||
while nCurrId do
|
||||
local nLinkId
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - k * LayerParams.LinkDist)
|
||||
k = k + 1
|
||||
EgtChangeClosedCurveStartPoint( nCurrId, EgtEP( nPrevId))
|
||||
|
||||
if LayerParams.LinkType == LINK_TYPE.LINEAR then
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId))
|
||||
else
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
local _, _, dAngIni = SphericalFromVector( EgtEV( nPrevId))
|
||||
local _, _, dAngFin = SphericalFromVector( EgtSV( nCurrId))
|
||||
nLinkId = EgtBiArc( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId), dAngIni, dAngFin, 0.5)
|
||||
end
|
||||
EgtRelocate( nLinkId, nCurrId, GDB_IN.BEFORE)
|
||||
EgtModifyCurveExtrusion( nLinkId, Z_AX(), GDB_RT.GLOB)
|
||||
local nType = EgtGetInfo( nCurrId, KEY_TYPE, 'i')
|
||||
EgtSetInfo( nLinkId, KEY_TYPE, TYPE.LINK)
|
||||
nPrevId = nCurrId
|
||||
while nCurrId do
|
||||
-- verifico se ha senso creare link
|
||||
if abs( dist( EgtEP( nPrevId), EgtSP( nCurrId))) < LayerParams.dStrand + 10 then
|
||||
local nLinkId
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - k * LayerParams.LinkDist)
|
||||
k = k + 1
|
||||
EgtChangeClosedCurveStartPoint( nCurrId, EgtEP( nPrevId))
|
||||
|
||||
if LayerParams.LinkType == LINK_TYPE.LINEAR then
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId))
|
||||
else
|
||||
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
|
||||
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
|
||||
local _, _, dAngIni = SphericalFromVector( EgtEV( nPrevId))
|
||||
local _, _, dAngFin = SphericalFromVector( EgtSV( nCurrId))
|
||||
nLinkId = EgtBiArc( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId), dAngIni, dAngFin, 0.5)
|
||||
end
|
||||
EgtRelocate( nLinkId, nCurrId, GDB_IN.BEFORE)
|
||||
EgtModifyCurveExtrusion( nLinkId, Z_AX(), GDB_RT.GLOB)
|
||||
local nType = EgtGetInfo( nCurrId, KEY_TYPE, 'i')
|
||||
EgtSetInfo( nLinkId, KEY_TYPE, TYPE.LINK)
|
||||
end
|
||||
nPrevId = nCurrId
|
||||
nCurrId = EgtGetNext( nCurrId)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user