- aggiunta verifica start ed end dowel
- aggiunti dowel a pezzi che intersecano gli split - aggiunti nomi superfici dei pezzi
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -176,6 +176,7 @@ WIN_PRF_TYPE = 'Type'
|
||||
WIN_PRF_MAIN = 'Main'
|
||||
WIN_PRF_START = 'Start'
|
||||
WIN_PRF_END = 'End'
|
||||
WIN_PRF_SPLIT = 'Split'
|
||||
|
||||
WIN_PROFILETYPE = 'ProfileType'
|
||||
WIN_SEPARATIONTYPE = 'SeparationType'
|
||||
@@ -195,6 +196,9 @@ WIN_FILLDELTA = 'FillDelta'
|
||||
WIN_MAINGUIDE = 'MainGuide'
|
||||
WIN_STARTGUIDE = 'StartGuide'
|
||||
WIN_ENDGUIDE = 'EndGuide'
|
||||
WIN_SRF_MAIN = 'MainSurface'
|
||||
WIN_SRF_START = 'StartSurface'
|
||||
WIN_SRF_END = 'EndSurface'
|
||||
|
||||
WIN_BOTTOMRAIL = 'BottomRail'
|
||||
|
||||
|
||||
@@ -1526,6 +1526,7 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
-- recupero outline del profilo Main e lo estrudo
|
||||
local nMainOutlineId = EgtGetFirstNameInGroup( nMainProfileId, WIN_SECTION)
|
||||
local nMainExtrusionId = EgtSurfTmSwept( nSolidLayerId, nMainOutlineId, nGuideId, false, WIN_SURF_APPROX)
|
||||
EgtSetName( nMainExtrusionId, WIN_SRF_MAIN)
|
||||
-- posiziono il profilo Start
|
||||
local nRefStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, WIN_REF)
|
||||
local b3RefStartProfile = EgtGetBBoxGlob(nRefStartProfileId, GDB_BB.STANDARD)
|
||||
@@ -1596,13 +1597,14 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
nOutStartProfileId = EgtGetFirstNameInGroup( nStartProfileId, sStartProfileType)
|
||||
end
|
||||
local nStartExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutStartProfileId, nStartGuideId, false, WIN_SURF_APPROX)
|
||||
EgtSetName( nStartExtrusionId, WIN_SRF_START)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nExtrCopyId = EgtCopy( nMainExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nMainExtrusionId, nStartExtrusionId, true, false)
|
||||
EgtSurfTmCut( nStartExtrusionId, nExtrCopyId, true, false)
|
||||
-- creo fori per spine su Start
|
||||
local nDowelLayerId = EgtGroup( nPartId)
|
||||
EgtSetName( nDowelLayerId, 'Dowel')
|
||||
EgtSetName( nDowelLayerId, WIN_DOWEL)
|
||||
local nPrevOutlineId, nEndOutlineId = GetPrevNextOutline( nProfileType, nOutlineId, nOutlineLayerId)
|
||||
local sOutlineName = EgtGetName( nOutlineId)
|
||||
local sPrevOutlineName = EgtGetName( nPrevOutlineId)
|
||||
@@ -1673,26 +1675,29 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
if not dEnd then
|
||||
dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd')
|
||||
end
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtParaStartPoint = EgtSV( nOutlineId)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart)
|
||||
-- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, - vtParaStartPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nDowelExtrusionId, nStartExtrusionId, true, false)
|
||||
EgtSurfTmCut( nStartExtrusionId, nDowelExtrCopyId, true, false)
|
||||
EgtErase( nDowelExtrCopyId)
|
||||
nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*')
|
||||
-- verifico che start ed end abbiano dei valori
|
||||
if dStart and dEnd then
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtParaStartPoint = EgtSV( nOutlineId)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart)
|
||||
-- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, - vtParaStartPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nDowelExtrusionId, nStartExtrusionId, true, false)
|
||||
EgtSurfTmCut( nStartExtrusionId, nDowelExtrCopyId, true, false)
|
||||
EgtErase( nDowelExtrCopyId)
|
||||
end
|
||||
nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*')
|
||||
end
|
||||
end
|
||||
-- posiziono il profilo End
|
||||
@@ -1759,6 +1764,7 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
nOutEndProfileId = EgtGetFirstNameInGroup( nEndProfileId, sEndProfileType)
|
||||
end
|
||||
local nEndExtrusionId = EgtSurfTmSwept( nSolidLayerId, nOutEndProfileId, nEndGuideId, false, WIN_SURF_APPROX)
|
||||
EgtSetName( nEndExtrusionId, WIN_SRF_END)
|
||||
-- taglio estrusi per ottenere solido
|
||||
EgtSurfTmCut( nMainExtrusionId, nEndExtrusionId, true, false)
|
||||
EgtSurfTmCut( nEndExtrusionId, nExtrCopyId, true, false)
|
||||
@@ -1828,24 +1834,27 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
if not dEnd then
|
||||
dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd')
|
||||
end
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nRightGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_RIGHT)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtParaEndPoint = EgtEV( nOutlineId)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nRightGeoId) - ptDowelCenter) * vtParaEndPoint * vtParaEndPoint - vtParaEndPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, - vtParaEndPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtParaEndPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, vtParaEndPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nDowelExtrusionId, nEndExtrusionId, true, false)
|
||||
EgtSurfTmCut( nEndExtrusionId, nDowelExtrCopyId, true, false)
|
||||
EgtErase( nDowelExtrCopyId)
|
||||
-- verifico che start ed end abbiano dei valori
|
||||
if dStart and dEnd then
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nRightGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_RIGHT)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtParaEndPoint = EgtEV( nOutlineId)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nRightGeoId) - ptDowelCenter) * vtParaEndPoint * vtParaEndPoint - vtParaEndPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, - vtParaEndPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtParaEndPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, vtParaEndPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nDowelExtrusionId, nEndExtrusionId, true, false)
|
||||
EgtSurfTmCut( nEndExtrusionId, nDowelExtrCopyId, true, false)
|
||||
EgtErase( nDowelExtrCopyId)
|
||||
end
|
||||
nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*')
|
||||
end
|
||||
end
|
||||
@@ -1854,7 +1863,167 @@ function WinCalculate.MakeSolidByExtrusion(nGeoId, nOutlineId, nMainProfileId, n
|
||||
end
|
||||
|
||||
-- funzione che posiziona i fori delle spine degli split, li estrude e crea il solido
|
||||
function WinCalculate.AddSplitDowelToExtrusion(nGeoId, nOutlineId, nMainProfileId, nStartProfileId, nEndProfileId, nProfileType, nSolidLayerId, nAreaType)
|
||||
function WinCalculate.AddSplitDowelToExtrusion(nOutlineId, nProfileFrameLayerId, nFrameProfileLayerId, nProfileType, nPartId, nSolidLayerId)
|
||||
-- recupero l'area di cui fa parte il pezzo
|
||||
local sOutlineName2 = EgtGetName( nOutlineId)
|
||||
local nOutlineLayerId = EgtGetParent( nOutlineId)
|
||||
local nAreaLayerId = EgtGetParent( nOutlineLayerId)
|
||||
-- se profilo Bottom con BottomRail, esco
|
||||
if nProfileType == WIN_PRF.BOTTOM then
|
||||
local nBaseOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE)
|
||||
local nBottomRailId = EgtGetInfo( nBaseOutlineLayerId, WIN_BOTTOMRAIL, 'i')
|
||||
if nBottomRailId and nBottomRailId == 1 then
|
||||
return
|
||||
end
|
||||
end
|
||||
-- verifico la presenza di eventuali Split
|
||||
local nSplitLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_SPLIT)
|
||||
if not nSplitLayerId then
|
||||
return
|
||||
end
|
||||
local nSplitId = EgtGetFirstInGroup( nSplitLayerId)
|
||||
|
||||
-- se presenti, verifico se intersecano l'outline che sto analizzando
|
||||
local ptInters = EgtIP( nOutlineId, nSplitId, EgtSP( nSplitId))
|
||||
if not ptInters then
|
||||
return
|
||||
end
|
||||
-- se interseca, recupero il profilo dello split
|
||||
local sSplitProfileType = EgtGetInfo( nSplitId, WIN_PROFILETYPE)
|
||||
local nOrigSplitProfileId = EgtGetFirstNameInGroup( nProfileFrameLayerId, sSplitProfileType)
|
||||
-- creo copia del profilo
|
||||
local nSplitProfileId = EgtCopy( nOrigSplitProfileId, nFrameProfileLayerId)
|
||||
local sSplitProfileType = EgtGetName( nOrigSplitProfileId)
|
||||
EgtSetInfo( nSplitProfileId, WIN_PRF_TYPE, sSplitProfileType)
|
||||
EgtSetName( nSplitProfileId, WIN_PRF_SPLIT)
|
||||
-- recupero intersezione con lato In
|
||||
local nGeoLayerId = EgtGetFirstNameInGroup( nPartId, WIN_GEO)
|
||||
local nGeoInId = EgtGetFirstNameInGroup(nGeoLayerId, WIN_GEO_IN)
|
||||
local ptIntersIn = EgtIP( nGeoInId, nSplitId, EgtSP( nSplitId))
|
||||
-- recupero frame del profilo
|
||||
local nSplitProfileFrameId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_SECTIONFRAME)
|
||||
local frInvertSplitProfile = EgtFR( nSplitProfileFrameId)
|
||||
frInvertSplitProfile:invert()
|
||||
-- lo applico a tutte le geometrie del profilo
|
||||
EgtTransform( EgtGetAllInGroup( nSplitProfileId), frInvertSplitProfile)
|
||||
-- assegno come riferimento del profilo il punto di intersezione
|
||||
EgtChangeGroupFrame( nSplitProfileId, Frame3d( ptIntersIn, - EgtSV( nSplitId)))
|
||||
|
||||
-- e lo porto nel sistema di riferimento corretto
|
||||
|
||||
-- recupero profondita' start e end dei dowel
|
||||
|
||||
-- ne disegno la superficie
|
||||
|
||||
-- recupero solido del pezzo
|
||||
local nSolidLayerId = EgtGetFirstNameInGroup( nPartId, WIN_SOLID)
|
||||
local nMainExtrusionId = EgtGetFirstNameInGroup( nSolidLayerId, WIN_SRF_MAIN)
|
||||
-- creo fori per spine su Split
|
||||
local nDowelLayerId = EgtGetFirstNameInGroup( nPartId, WIN_DOWEL)
|
||||
local nPrevOutlineId, nEndOutlineId = GetPrevNextOutline( nProfileType, nOutlineId, nOutlineLayerId)
|
||||
local sOutlineName = EgtGetName( nOutlineId)
|
||||
local sPrevOutlineName = EgtGetName( nPrevOutlineId)
|
||||
SplitJointType = WIN_PART_JNT.FULL
|
||||
if SplitJointType == WIN_PART_JNT.ANGLED then
|
||||
|
||||
elseif SplitJointType == WIN_PART_JNT.FULL then
|
||||
-- recupero profondita' d'inizio e fine
|
||||
local sStart = WIN_DWL_TOPPERPSTART
|
||||
local sEnd = WIN_DWL_TOPPERPEND
|
||||
if nProfileType == WIN_PRF.BOTTOM then
|
||||
sStart = WIN_DWL_BOTTOMPERPSTART
|
||||
sEnd = WIN_DWL_BOTTOMPERPEND
|
||||
elseif nProfileType == WIN_PRF.BOTTOMRAIL then
|
||||
sStart = WIN_DWL_RAILBOTTOMPERPSTART
|
||||
sEnd = WIN_DWL_RAILBOTTOMPERPEND
|
||||
end
|
||||
-- recupero profondita' d'inizio e fine
|
||||
--local sStart = EgtIf( sOutlineName == WIN_BOTTOM, WIN_DWL_BOTTOMPERPSTART, WIN_DWL_TOPPERPSTART)
|
||||
--local sEnd = EgtIf( sOutlineName == WIN_BOTTOM, WIN_DWL_BOTTOMPERPEND, WIN_DWL_TOPPERPEND)
|
||||
-- ciclo sui fori trovati
|
||||
local nOrigDowelId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_DOWEL .. '*')
|
||||
while nOrigDowelId do
|
||||
local dStart = EgtGetInfo( nOrigDowelId, sStart, 'd')
|
||||
if not dStart then
|
||||
dStart = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPERPSTART, 'd')
|
||||
end
|
||||
local dEnd = EgtGetInfo( nOrigDowelId, sEnd, 'd')
|
||||
if not dEnd then
|
||||
dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPERPEND, 'd')
|
||||
end
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nInGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_IN)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtPerpStartPoint = EgtSV( nOutlineId)
|
||||
vtPerpStartPoint:rotate( Z_AX(), 90)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nInGeoId) - ptDowelCenter) * vtPerpStartPoint * vtPerpStartPoint - vtPerpStartPoint * dStart)
|
||||
-- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nInGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter - vtPerpStartPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, - vtPerpStartPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, - vtPerpStartPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, vtPerpStartPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
EgtSurfTmCut( nMainExtrusionId, nDowelExtrusionId, true, false)
|
||||
-- EgtSurfTmCut( nDowelExtrusionId, nExtrCopyId, true, false)
|
||||
nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*')
|
||||
end
|
||||
elseif SplitJointType == WIN_PART_JNT.SHORT then
|
||||
-- recupero profondita' d'inizio e fine
|
||||
local sStart = WIN_DWL_TOPPARASTART
|
||||
local sEnd = WIN_DWL_TOPPARAEND
|
||||
if sOutlineName == WIN_BOTTOM then
|
||||
sStart = WIN_DWL_BOTTOMPARASTART
|
||||
sEnd = WIN_DWL_BOTTOMPARAEND
|
||||
elseif sOutlineName == WIN_SPLIT then
|
||||
local sStartType = EgtGetInfo( nSplitProfileId, WIN_PRF_TYPE)
|
||||
if ( sStartType and sStartType == WIN_RAIL_BOTTOM) or sPrevOutlineName == WIN_SPLIT then
|
||||
sStart = WIN_DWL_RAILBOTTOMPARASTART
|
||||
sEnd = WIN_DWL_RAILBOTTOMPARAEND
|
||||
end
|
||||
elseif sPrevOutlineName == WIN_BOTTOM then
|
||||
sStart = WIN_DWL_BOTTOMPARASTART
|
||||
sEnd = WIN_DWL_BOTTOMPARAEND
|
||||
end
|
||||
--local sStart = EgtIf( sOutlineName == WIN_BOTTOM or sPrevOutlineName == WIN_BOTTOM or sOutlineName == WIN_BOTTOMRAIL, WIN_DWL_BOTTOMPARASTART, WIN_DWL_TOPPARASTART)
|
||||
--local sEnd = EgtIf( sOutlineName == WIN_BOTTOM or sPrevOutlineName == WIN_BOTTOM or sOutlineName == WIN_BOTTOMRAIL, WIN_DWL_BOTTOMPARAEND, WIN_DWL_TOPPARAEND)
|
||||
-- ciclo sui fori trovati
|
||||
local nOrigDowelId = EgtGetFirstNameInGroup( nSplitProfileId, WIN_DOWEL .. '*')
|
||||
while nOrigDowelId do
|
||||
local dStart = EgtGetInfo( nOrigDowelId, sStart, 'd')
|
||||
if not dStart then
|
||||
dStart = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARASTART, 'd')
|
||||
end
|
||||
local dEnd = EgtGetInfo( nOrigDowelId, sEnd, 'd')
|
||||
if not dEnd then
|
||||
dEnd = EgtGetInfo( nOrigDowelId, WIN_DWL_TOPPARAEND, 'd')
|
||||
end
|
||||
local nDowelId = EgtCopyGlob( nOrigDowelId, nDowelLayerId)
|
||||
EgtSetColor( nDowelId, Color3d( 128, 128, 128))
|
||||
local nLeftGeoId = EgtGetFirstNameInGroup( nGeoLayerId, WIN_GEO_LEFT)
|
||||
local ptDowelCenter = EgtCP( nDowelId)
|
||||
local vtParaStartPoint = EgtSV( nOutlineId)
|
||||
-- posiziono i fori e gli assegno estrusione e spessore
|
||||
EgtMove( nDowelId, ( EgtSP( nLeftGeoId) - ptDowelCenter) * vtParaStartPoint * vtParaStartPoint + vtParaStartPoint * dStart)
|
||||
-- EgtMove( nDowelId, Point3d( ptDowelCenter:getX(), EgtSP( nLeftGeoId):getY(), ptDowelCenter:getZ()) - ptDowelCenter + vtParaStartPoint * dStart)
|
||||
EgtModifyCurveExtrusion( nDowelId, vtParaStartPoint)
|
||||
EgtModifyCurveThickness( nDowelId, dEnd - dStart)
|
||||
-- creo solido di estrusione
|
||||
local nDowelExtrusionId = EgtSurfTmByRegionExtrusion( nSolidLayerId, nDowelId, vtParaStartPoint * ( dEnd - dStart + 1))
|
||||
EgtMove( nDowelExtrusionId, - vtParaStartPoint)
|
||||
EgtInvertSurf( nDowelExtrusionId)
|
||||
-- taglio estrusi per ottenere solido
|
||||
local nDowelExtrCopyId = EgtCopy( nDowelExtrusionId, nSolidLayerId)
|
||||
EgtSurfTmCut( nDowelExtrusionId, nMainExtrusionId, true, false)
|
||||
EgtSurfTmCut( nMainExtrusionId, nDowelExtrCopyId, true, false)
|
||||
EgtErase( nDowelExtrCopyId)
|
||||
nOrigDowelId = EgtGetNextName( nOrigDowelId, WIN_DOWEL .. '*')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
@@ -2271,7 +2440,7 @@ function WinCalculate.CalcFrameSolid(nPartId, nOutlineId, nGeoId, nOutlineLayerI
|
||||
-- nAreaType = EgtGetInfo( nAreaId, WIN_AREATYPE, 'i')
|
||||
-- until not nAreaId or ( nAreaType ~= WIN_AREATYPES.SPLIT and nAreaType ~= WIN_AREATYPES.NULL)
|
||||
--
|
||||
-- WinCalculate.AddSplitDowelToExtrusion(nGeoId, nOutlineId, nProfileType, nSolidLayerId, nAreaType)
|
||||
WinCalculate.AddSplitDowelToExtrusion( nOutlineId, nProfileFrameLayerId, nFrameProfileLayerId, nProfileType, nPartId, nSolidLayerId)
|
||||
end
|
||||
|
||||
-- funzione che crea il solido del Fill
|
||||
|
||||
Reference in New Issue
Block a user