Files
refactorwall/ProgramData/EgtCAM5/LuaCmd/FlattenCurve.lua
Carlo Baronchelli 741791a0e4 Copia locale Iniziale
2022-05-19 16:04:07 +02:00

41 lines
1.1 KiB
Lua

-- 2018/09/01
-- Appiattimento di una curva
-- Istruzioni :
-- 1) selezionare la curva da appiattire
-- 3) eseguire il componente.
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Recupero primo oggetto selezionato (curva da appiattire)
local nId = EgtGetFirstSelectedObj()
local nType = EgtGetType( nId)
if nType ~= GDB_TY.CRV_LINE and nType ~= GDB_TY.CRV_ARC and nType ~= GDB_TY.CRV_BEZ and nType ~= GDB_TY.CRV_COMPO then
EgtOutText( 'Il primo oggetto selezionato non è una curva')
EgtPause( 500)
return
end
-- Recupero Estrusione e la annullo
local vtExtr = EgtCurveExtrusion( nId)
EgtModifyCurveExtrusion( nId, V_NULL())
-- Recupero piano medio della curva e verifico se abbastanza piatta
local bFlat, vtN, dDist = EgtCurveIsFlat( nId, 0.1)
if not bFlat then
EgtOutText( 'La curva è molto ingobbita (scostamento oltre 0.1 mm)')
end
-- Eseguo l'appiattimento
local bOk = EgtProjectCurveOnPlane( nId, dDist * vtN, vtN, GDB_RT.LOC)
-- Imposto versore estrusione
if vtExtr and vtExtr * vtN < 0 then vtN = - vtN end
EgtModifyCurveExtrusion( nId, vtN)
EgtDraw()
EgtPause( 500)