Merge remote-tracking branch 'origin/main'
This commit is contained in:
Binary file not shown.
@@ -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=
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -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
@@ -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,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
|
||||
|
||||
@@ -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
Binary file not shown.
Reference in New Issue
Block a user