DataBeam :
- migliorato calcolo punto inizio lavorazione tenone - migliorato scelta direzione approccio taglio con lama - migliorata gestione geometria addizionale in gruppo apposito.
This commit is contained in:
+17
-13
@@ -189,7 +189,7 @@ function BeamLib.PutStartOnLonger( nCrvId)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function BeamLib.PutStartNearestToEdge( nCrvId, b3Raw, bDown)
|
||||
function BeamLib.PutStartNearestToEdge( nCrvId, b3Raw, dMaxDist, bDown)
|
||||
-- verifico che la curva sia chiusa
|
||||
if not EgtCurveIsClosed( nCrvId) then return false end
|
||||
-- recupero il versore normale al piano di lavoro o estrusione
|
||||
@@ -217,18 +217,14 @@ function BeamLib.PutStartNearestToEdge( nCrvId, b3Raw, bDown)
|
||||
dD = min( abs( vtMin:getZ()) * dCoeffZ, dD)
|
||||
dD = min( abs( vtMax:getZ()) * dCoeffZ, dD)
|
||||
local dZ = abs( EgtIf( bDown, vtMin:getZ(), vtMax:getZ())) * dCoeffZ
|
||||
if dD < dDopt + 10 and dZ < dZopt + GEO.EPS_SMALL then
|
||||
if dD < dMaxDist and dZ < dZopt + GEO.EPS_SMALL then
|
||||
dUopt = dU
|
||||
dDopt = min( dD, dDopt)
|
||||
dZopt = dZ
|
||||
elseif dD < dDopt - 10 or ( dD < dDopt + GEO.EPS_SMALL and dZ < dZopt + GEO.EPS_SMALL) then
|
||||
dDopt = dD
|
||||
dUopt = dU
|
||||
dZopt = dZ
|
||||
end
|
||||
end
|
||||
end
|
||||
if abs( dUopt - dUi) > GEO.EPS_ZERO then
|
||||
if abs( dUopt - dUi) > GEO.EPS_ZERO and abs( dUopt - dUf) > GEO.EPS_ZERO then
|
||||
EgtChangeClosedCurveStart( nCrvId, dUopt)
|
||||
end
|
||||
return true
|
||||
@@ -274,7 +270,7 @@ function BeamLib.GetNearestParalOpposite( vtRef, vtNorm)
|
||||
end
|
||||
-- se prevalente una componente orizzontale (con piccolissimo vantaggio)
|
||||
if abs( vtMyRef:getX()) > 0.95 * abs( vtMyRef:getZ()) or abs( vtMyRef:getY()) > 0.95 * abs( vtMyRef:getZ()) then
|
||||
if abs( vtMyRef:getX()) > abs( vtMyRef:getY()) - GEO.EPS_SMALL then
|
||||
if abs( vtMyRef:getX()) > 0.95 * abs( vtMyRef:getY()) then
|
||||
if vtMyRef:getX() > -GEO.EPS_SMALL then
|
||||
return MCH_MILL_FU.PARAL_LEFT
|
||||
else
|
||||
@@ -308,8 +304,8 @@ function BeamLib.GetNearestOrthoOpposite( vtRef, vtNorm)
|
||||
end
|
||||
-- se prevalente una componente orizzontale (con piccolissimo vantaggio)
|
||||
if abs( vtMyRef:getX()) > 0.95 * abs( vtMyRef:getZ()) or abs( vtMyRef:getY()) > 0.95 * abs( vtMyRef:getZ()) then
|
||||
-- se prevale la componente destra/sinistra (con piccolo vantaggio)
|
||||
if abs( vtMyRef:getX()) > 0.9 * abs( vtMyRef:getY()) then
|
||||
-- se prevale la componente destra/sinistra
|
||||
if abs( vtMyRef:getX()) > 0.95 * abs( vtMyRef:getY()) then
|
||||
if vtMyRef:getX() > -GEO.EPS_SMALL then
|
||||
return MCH_MILL_FU.ORTHO_LEFT
|
||||
else
|
||||
@@ -693,8 +689,10 @@ function BeamLib.GetNzLimDownUp( b3Raw, vtN, vtOrtho)
|
||||
return -0.484
|
||||
else
|
||||
if vtOrtho and vtOrtho:getZ() > 0.5 then
|
||||
if vtN and ( abs( vtN:getY()) < 0.1 or abs( vtN:getY()) > 0.49) then
|
||||
if vtN and ( abs( vtN:getY()) < 0.259 or abs( vtN:getY()) > 0.819) then
|
||||
return -0.708
|
||||
elseif vtN and abs( vtN:getY()) > 0.766 then
|
||||
return -0.383
|
||||
else
|
||||
return EgtIf( b3Raw:getDimZ() < BD.MIN_DIM_HBEAM, -0.609, -0.383)
|
||||
end
|
||||
@@ -702,8 +700,14 @@ function BeamLib.GetNzLimDownUp( b3Raw, vtN, vtOrtho)
|
||||
if vtN and ( abs( vtN:getY()) > 0.866) then
|
||||
return -0.708
|
||||
else
|
||||
if b3Raw:getDimZ() < 200 then
|
||||
return -0.5
|
||||
if b3Raw:getDimZ() < 120 then
|
||||
return -0.708
|
||||
elseif b3Raw:getDimZ() < 200 then
|
||||
if vtN and ( abs( vtN:getY()) < 0.259 or abs( vtN:getY()) > 0.819) then
|
||||
return -0.5
|
||||
else
|
||||
return -0.383
|
||||
end
|
||||
elseif b3Raw:getDimZ() < BD.MIN_DIM_HBEAM then
|
||||
return -0.240
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user