Merge remote-tracking branch 'origin/main'

This commit is contained in:
Emmanuele Sassi
2022-04-12 19:37:09 +02:00
8 changed files with 126 additions and 52 deletions
Binary file not shown.
-41
View File
@@ -1,41 +0,0 @@
[Default]
StrandH=10
StrandW=5
StrandCount=1
Offset=3
StartingPoint=-300,-200
StrandOrder=in
Direction=CCW
LinkType=straight
LinkParam=5
FloorCount=0
Speed=
Feed=
ExtFeed=
IntFeed=
InfillFeed=
LeadInFeed=
LeadOutFeed=
SupportFeed=
G0Feed=10
Material=material1
[LayerX]
StrandH=1
StrandW=8
StrandCount=3
Offset=2
StartingPoint=(x,y)
StrandOrder=in/out
Direction=CW/CCW
LinkType=straight/sPath
LinkParam=5
FloorCount=2
Speed=
ExtFeed=
IntFeed=
InfillFeed=
LeadInFeed=
LeadOutFeed=
SupportFeed=
G0Feed=
+13
View File
@@ -40,6 +40,7 @@ KEY_PRINT_DIRECTION = "Direction"
KEY_TYPE = "Type"
KEY_LINK_TYPE = "LinkType"
KEY_LINK_PARAM = "LinkParam"
KEY_LINK_DIST="LinkDist"
KEY_FLOOR_NBR = "FloorCount"
KEY_SPEED = "Speed"
KEY_FEED = "Feed"
@@ -53,6 +54,13 @@ KEY_G0_FEED = "G0Feed"
KEY_MATERIAL = "Material"
KEY_COEFF_X = "CoeffX"
KEY_COEFF_Y = "CoeffY"
KEY_LEAD_IN_TYPE = "LeadIn"
KEY_LEAD_IN_TANG_DIST = "LeadInTangDist"
KEY_LEAD_IN_ORTHO_DIST = "LeadInOrthoDist"
KEY_LEAD_OUT_TYPE = "LeadOut"
KEY_LEAD_OUT_TANG_DIST= "LeadOutTangDist"
KEY_LEAD_OUT_ORTHO_DIST= "LeadOutOrthoDist"
KEY_OFFSET_LEAD_POINT = "OffsetLeadPoint"
TYPE = {
OUTER_SHELL = 0,
@@ -78,6 +86,11 @@ LINK_TYPE = {
BIARC = 1,
}
LEAD_TYPE = {
LINEAR = 0,
ARC = 1,
}
---------------------------------------------------------------------
+85 -3
View File
@@ -21,9 +21,78 @@ local function GetLayerParamsForToolPathCalc()
LayerParams.nOrder = EgtGetInfo( nParamsGrp, KEY_PRINT_ORDER, 'i')
LayerParams.LinkType = EgtGetInfo( nParamsGrp, KEY_LINK_TYPE, 'i')
LayerParams.LinkParam = EgtGetInfo( nParamsGrp, KEY_LINK_PARAM, 'd')
LayerParams.LinkDist = EgtGetInfo( nParamsGrp, KEY_LINK_DIST, 'd')
LayerParams.LeadInType = EgtGetInfo( nParamsGrp, KEY_LEAD_IN_TYPE, 'i')
LayerParams.LeadInTangDist = EgtGetInfo( nParamsGrp, KEY_LEAD_IN_TANG_DIST, 'd')
LayerParams.LeadInOrthoDist = EgtGetInfo( nParamsGrp, KEY_LEAD_IN_ORTHO_DIST, 'd')
LayerParams.LeadOutType = EgtGetInfo( nParamsGrp, KEY_LEAD_OUT_TYPE, 'i')
LayerParams.LeadOutTangDist = EgtGetInfo( nParamsGrp, KEY_LEAD_OUT_TANG_DIST, 'd')
LayerParams.LeadOutOrthoDist = EgtGetInfo( nParamsGrp, KEY_LEAD_OUT_ORTHO_DIST, 'd')
LayerParams.dOffsetLP = EgtGetInfo( nParamsGrp, KEY_OFFSET_LEAD_POINT, 'd')
return LayerParams
end
--------------------------------------------------------------------
local function AddLeadIn( nCrvId, LayerParams, nGrpId)
local ptE = EgtSP( nCrvId)
local vtTang = EgtSV( nCrvId)
local vtOrtho = Vector3d( vtTang)
local dAng = 90
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INT_EXT_INF) or
( not LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.EXT_INT_INF) then
dAng = - 90
end
vtOrtho:rotate( Z_AX(), dAng)
local ptS = ptE - LayerParams.LeadInTangDist * vtTang + LayerParams.LeadInOrthoDist * vtOrtho
local nLeadInCrv = GDB_ID.NULL
if LayerParams.LeadInType == LEAD_TYPE.LINEAR then
nLeadInCrv = EgtLine( nGrpId, ptS, ptE)
elseif LayerParams.LeadInType == LEAD_TYPE.ARC then
local _, _, dAngIni = SphericalFromVector( vtTang)
nLeadInCrv = EgtArc2PD( nGrpId, ptE, ptS, 180 + dAngIni)
EgtInvertCurve( nLeadInCrv)
end
EgtRelocate( nLeadInCrv, nGrpId, GDB_IN.FIRST_SON)
EgtSetInfo( nLeadInCrv, KEY_TYPE, TYPE.LINK)
end
--------------------------------------------------------------------
local function AddLeadOut( nCrvId, LayerParams, nGrpId)
local ptS = EgtEP( nCrvId)
local vtTang = EgtEV( nCrvId)
local vtOrtho = Vector3d( vtTang)
local dAng = - 90
if ( LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.INT_EXT_INF) or
( not LayerParams.bInvert and LayerParams.nOrder == PRINT_ORDER.EXT_INT_INF) then
dAng = 90
end
vtOrtho:rotate( Z_AX(), dAng)
local ptE = ptS + LayerParams.LeadOutTangDist * vtTang + LayerParams.LeadOutOrthoDist * vtOrtho
local nLeadOutCrv = GDB_ID.NULL
if LayerParams.LeadOutType == LEAD_TYPE.LINEAR then
nLeadOutCrv = EgtLine( nGrpId, ptS, ptE)
elseif LayerParams.LeadOutType == LEAD_TYPE.ARC then
local _, _, dAngIni = SphericalFromVector( vtTang)
nLeadOutCrv = EgtArc2PD( nGrpId, ptS, ptE, dAngIni)
end
EgtRelocate( nLeadOutCrv, nGrpId, GDB_IN.LAST_SON)
EgtSetInfo( nLeadOutCrv, KEY_TYPE, TYPE.LINK)
end
---------------------------------------------------------------------
function CalcToolPath.Exec( nPartId)
@@ -71,17 +140,23 @@ function CalcToolPath.Exec( nPartId)
EgtMove( nNewEntId, Vector3d( 0, 0, LayerParams.dLayHeight), GDB_RT.GLOB)
if LayerParams.bInvert then
EgtInvertCurve( nNewEntId)
end
end
nEntId = EgtGetNext( nEntId)
end
-- aggiungo gli opportuni raccordi
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
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtSP( nCurrId))
else
nLinkId = EgtLine( nTpathGrpId, EgtEP( nPrevId), EgtEP( nCurrId))
else
EgtTrimCurveEndAtLen( nPrevId, EgtCurveLength( nPrevId) - LayerParams.LinkParam / 2)
EgtTrimCurveStartAtLen( nCurrId, LayerParams.LinkParam / 2)
local _, _, dAngIni = SphericalFromVector( EgtEV( nPrevId))
@@ -95,6 +170,13 @@ function CalcToolPath.Exec( nPartId)
nCurrId = EgtGetNext( nCurrId)
end
-- aggiungo leadin/leadout
local nFirstCurve = EgtGetFirstInGroup( nTpathGrpId)
EgtTrimCurveStartAtLen( nFirstCurve, LayerParams.dOffsetLP)
AddLeadIn( nFirstCurve, LayerParams, nTpathGrpId)
local nLastCurve = EgtGetLastInGroup( nTpathGrpId)
EgtTrimCurveEndAtLen( nLastCurve, EgtCurveLength( nLastCurve) - LayerParams.dOffsetLP)
AddLeadOut( nLastCurve, LayerParams, nTpathGrpId)
--passo al gruppo di contorni successivo
nCrvGrpId = EgtGetNextName( nCrvGrpId, CONTOUR_GRP.."*")
end
+20 -1
View File
@@ -73,6 +73,7 @@ local function LoadParams( sFile, nPartId)
end
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LINK_PARAM, '0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LINK_DIST, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_FLOOR_NBR, '0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_SPEED, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_FEED, '0.0')
@@ -83,7 +84,25 @@ local function LoadParams( sFile, nPartId)
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LEAD_OUT_FEED, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_SUPPORT_FEED, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_G0_FEED, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_MATERIAL, '')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_MATERIAL, '')
local sLeadInType = EgtGetStringFromIni( DEFAULT_SECTION, KEY_LEAD_IN_TYPE, 'arc', sFile)
if sLeadInType == 'linear' then
EgtSetInfo( nParamsGrp, KEY_LEAD_IN_TYPE, LEAD_TYPE.LINEAR)
else
EgtSetInfo( nParamsGrp, KEY_LEAD_IN_TYPE, LEAD_TYPE.ARC)
end
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LEAD_IN_TANG_DIST, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LEAD_IN_ORTHO_DIST, '0.0')
local sLeadOutType = EgtGetStringFromIni( DEFAULT_SECTION, KEY_LEAD_OUT_TYPE, 'arc', sFile)
if sLeadOutType == 'linear' then
EgtSetInfo( nParamsGrp, KEY_LEAD_OUT_TYPE, LEAD_TYPE.LINEAR)
else
EgtSetInfo( nParamsGrp, KEY_LEAD_OUT_TYPE, LEAD_TYPE.ARC)
end
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LEAD_OUT_TANG_DIST, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_LEAD_OUT_ORTHO_DIST, '0.0')
SetParamInfo( sFile, nParamsGrp, DEFAULT_SECTION, KEY_OFFSET_LEAD_POINT, '0.0')
end
+8
View File
@@ -8,6 +8,14 @@ StrandOrder=in
Direction=CCW
LinkType=sPath
LinkParam=10.0
LinkDist=0
OffsetLeadPoint=10
LeadIn=arc
LeadInTangDist=20
LeadInOrthoDist=20
LeadOut=linear
LeadOutTangDist=20
LeadOutOrthoDist=20
FloorCount=2
Speed=
Feed=4500
-7
View File
@@ -1,7 +0,0 @@
# 3dPrinting
Script LUA x progetto 3DPrinting (CMS Kreator)
# Automazioni
Come per i progetti EgtBeamWall, alla pubblicazione di ogni push nel ramo principale (MAIN), gli script LUA verranno compilati e resi disponibili in area R:\ e Artifacts per essere impiegati ad esempio negli installers.
BIN
View File
Binary file not shown.