Merge branch 'develop'
This commit is contained in:
@@ -203,9 +203,9 @@ InternalCompo2=2,Fr_Alz.lua
|
||||
;CompoDir=C:\ProgramData\Egaltech\OmagCUT\CompoAF
|
||||
CompoDir=C:\EgtDev\frontalini\Frontalini_ecc\CompoAF
|
||||
Alz&Front=72,Alz&Front.lua,Alz&Front.png
|
||||
A_Height=30
|
||||
A_Height=45
|
||||
A_DeltaAng=1
|
||||
F_Height=35
|
||||
F_Height=60
|
||||
F_DeltaAng=1
|
||||
|
||||
[FlatParts]
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,238 @@
|
||||
-- 2021/06/__
|
||||
-- (exRettangolo interno dati base e altezza)
|
||||
-- 21/06/2021 Nicola Pievani: creazione del file Alz&Front
|
||||
-- 05/07/2021 Nicola Pievani: Inserisco commenti
|
||||
-- 08/07/2021 CB: inizio disegno dei 'rettangoli esterni'
|
||||
-- 00b 10/07/2020 CB: costruzione della tabella "MyTab"
|
||||
-- 00c 13/07/2021 CB: introduzone record "SideREc" e tabella "SideTab"
|
||||
-- 00d 15/07/2021 CB: introduzione funzione per disegno rettangoli
|
||||
-- 00e 16/07/2021
|
||||
-- 00f 20/07/2021
|
||||
-- 21/07/2021 - aggiornato progetto in GIT
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EgtBase')
|
||||
_ENV = EgtProtectGlobal()
|
||||
EgtEnableDebug( true)
|
||||
|
||||
EgtAddToPackagePath(EgtGetSourceDir() .. 'LuaLibs\\?.lua')
|
||||
require( 'EgtCompo')
|
||||
|
||||
-- Valori limite
|
||||
local LgMin = 10
|
||||
local RMin = 5
|
||||
-- Parametri : dichiarazione e valori standard
|
||||
--.T (tipo) : 0=null, 1=bool, 2=int, 3=len, 4=num, 5=string
|
||||
local CMP = {}
|
||||
|
||||
-- elenco dei parametri visualizzati nell'interfaccia del programma OMAG-Cut
|
||||
CMP.A_Height=30
|
||||
CMP.F_Height=30
|
||||
CMP.A_DeltaAng=0
|
||||
CMP.F_DeltaAng=0
|
||||
-- parametri passati da OmagCut
|
||||
CMP.BBoxRad = 1000
|
||||
CMP.HeightText = 100
|
||||
--
|
||||
_G.CMP = CMP
|
||||
|
||||
-- Funzione di disegno
|
||||
local function CMP_Draw(bPreview)
|
||||
-- Carico i messaggi
|
||||
local Msg = require('EgtCompoMsg')
|
||||
-- Assegno l'angolo di incremento per i tagli inclinati
|
||||
local F_Delta = CMP.F_DeltaAng
|
||||
local A_Delta = CMP.A_DeltaAng
|
||||
-- Assegno l'altezza
|
||||
local FH = CMP.F_Height
|
||||
local AH = CMP.A_Height
|
||||
-- Assegno la dimensione di riferimento (=1/10 del 'raggio' della figura)
|
||||
local dDim = CMP.BBoxRad*0.1
|
||||
--
|
||||
CMP.ERR = 0
|
||||
CMP.MSG = ''
|
||||
-- Pezzo e Layer già definiti
|
||||
local Pz = EgtGetFirstGroupInGroup( GDB_ID.ROOT)
|
||||
if not Pz then
|
||||
CMP.ERR = 5
|
||||
CMP.MSG = "Pezzo non trovato"
|
||||
return
|
||||
end
|
||||
--
|
||||
local La = EgtGetFirstNameInGroup( Pz, "LayAux")
|
||||
local Lo = EgtGetFirstNameInGroup( Pz, "Region")
|
||||
local Lw = EgtGetFirstNameInGroup( Pz, "OutLoop")
|
||||
local Le = EgtGetFirstNameInGroup( Pz, "Etichette")
|
||||
local Lq = EgtGetFirstNameInGroup( Pz, "Quotature")
|
||||
local Ls = EgtGetFirstNameInGroup( Pz, "SelectRegion")
|
||||
|
||||
--local PzAF = EgtGroup(GDB_ID.ROOT,GDB_RT.LOC) -- ??? nuova part: alzatine e frontalini ???????
|
||||
--local LyA = EgtGroup(PzAF,GDB_RT.LOC) -- layer alzatine
|
||||
--EgtSetName(LyA,'Alzatine')
|
||||
--local LyF = EgtGroup(PzAF,GDB_RT.LOC) -- layer frontalini
|
||||
--EgtSetName(LyF,'Frontalini')
|
||||
--local LyAe = EgtGroup(PzAF,GDB_RT.LOC) -- layer etichette alzatine
|
||||
--EgtSetName(LyAe,'Etich_Alzatine')
|
||||
--local LyFe = EgtGroup(PzAF,GDB_RT.LOC) -- layer etichette frontalini
|
||||
--EgtSetName(LyFe,'Etich_Frontalini')
|
||||
|
||||
if not Ls then
|
||||
Ls = EgtGroup( Pz, GDB_RT.LOC)
|
||||
EgtSetName( Ls, "SelectRegion")
|
||||
end
|
||||
|
||||
if not La or not Lo or not Lw or not Le or not Lq then
|
||||
CMP.ERR = 6
|
||||
CMP.MSG = "Layer non trovato"
|
||||
return
|
||||
end
|
||||
|
||||
local Lr = EgtGetFirstNameInGroup( Pz, "ErrorLay")
|
||||
if Lr then
|
||||
EgtEmptyGroup(Lr)
|
||||
else
|
||||
Lr = EgtGroup( Pz, GDB_RT.LOC)
|
||||
EgtSetName( Lr, "ErrorLay")
|
||||
end
|
||||
|
||||
-- spengo i layer Aux e Quotature
|
||||
EgtSetStatus( La, GDB_ST.OFF)
|
||||
EgtSetStatus( Lq, GDB_ST.OFF)
|
||||
|
||||
local sInd = nil
|
||||
|
||||
--[[ faccio scorrere tutti gli elementi del layer OutLoop e di ognuno leggo se contiente nelle info "AF=.."
|
||||
"AF=0" ( o nil) al lato non deve essere associatu nulla
|
||||
"AF=1" al lato deve essere associto un'alzatina
|
||||
"AF=2" al lato deve essere associato un frontalino
|
||||
nel ciclo while che segue carico una tabella che contine tutti i lati e i riferimenti ai lati successivi,
|
||||
oltre a informazioni sulle direzioni iniziali/finali dei lati cghe seguono/precedono.
|
||||
(In questa fase possono essere aggiunte altre informazioni...)
|
||||
La variabile sMsg è usta dal programma per verificare che i lati letti dalla tabella siano gli stessi
|
||||
passati dal programma
|
||||
]]
|
||||
|
||||
local sMsg = " "
|
||||
local SideNum =1
|
||||
--local SideTab = {}
|
||||
SideTab = {}
|
||||
local CurrSide = EgtGetFirstInGroup( Lw)
|
||||
local PrecSide = nil
|
||||
|
||||
while CurrSide ~= nil do
|
||||
local SideRec = {}
|
||||
local Info = EgtGetInfo( CurrSide, "AF", 'i')
|
||||
if SideNum == 1 then
|
||||
-- |a = SideId, b = SideInfo-A/F, c= PrecSideInfo, d = ProxSideInfo,|
|
||||
-- |e = SideStartVector, f = SideEndVector|
|
||||
-- |g = PrecSideEndvector, h = ProxSideStartVector|
|
||||
SideRec = {a = CurrSide, b = Info, c = 0, d = 0,
|
||||
e = EgtSV(CurrSide), f = nil, g = nil
|
||||
}
|
||||
else
|
||||
SideRec = {a=CurrSide, b=Info, c = SideTab[SideNum-1].b, d = 0,
|
||||
e = EgtSV(CurrSide), f = EgtEV(CurrSide),
|
||||
g = SideTab[SideNum-1].f, h = nil
|
||||
}
|
||||
SideTab[SideNum-1].d = SideRec.b ; SideTab[SideNum-1].h = SideRec.e
|
||||
end
|
||||
--
|
||||
if Info == 1 then
|
||||
sMsg = sMsg ..EgtGetName(CurrSide).."=Alzatina "
|
||||
EgtSetColor(CurrSide, 'RED')
|
||||
elseif Info == 2 then
|
||||
sMsg = sMsg ..EgtGetName(CurrSide).."=Frontalino "
|
||||
EgtSetColor(CurrSide, 'GREEN')
|
||||
else
|
||||
EgtSetColor(CurrSide, 'BLACK')
|
||||
end
|
||||
table.insert(SideTab, SideRec)
|
||||
--[[ da eliminare
|
||||
-- creo un rettangolo parallelo al lato corrente
|
||||
sMsg = sMsg ..EgtGetName(CurrSide).."=Frontalino "
|
||||
EgtSetColor(CurrSide, 'GREEN')
|
||||
table.insert( MyTab, {CurrId=CurrSide, AF=Info, PrecId=PrecSide}
|
||||
else
|
||||
EgtSetColor(CurrSide, 'BLACK')
|
||||
table.insert( MyTab, {CurrId=CurrSide, AF=0, PrecId=PrecSide}
|
||||
end
|
||||
end ]]
|
||||
-- passo al lato successivo
|
||||
PrecSide = CurrSide
|
||||
CurrSide = EgtGetNext( CurrSide)
|
||||
SideNum = SideNum + 1
|
||||
end
|
||||
-- completo la tabella con i riferimenti tra primo e ultimo lato e viceversa)
|
||||
-- |a = SideId, b = SideInfo-A/F, c= PrecSideInfo, d = ProxSideInfo,|
|
||||
-- |e = SideStartVector, f = SideEndVector|
|
||||
-- |g = PrecSideEndvector, h = ProxSideStartVector|
|
||||
if #SideTab > 1 then
|
||||
SideTab[1].c = SideTab[#SideTab].b
|
||||
SideTab[1].g = SideTab[#SideTab].f
|
||||
SideTab[#SideTab].d = SideTab[1].b
|
||||
SideTab[#SideTab].h = SideTab[1].e
|
||||
end
|
||||
|
||||
-- restituisco un messaggio al programma OMAG-Cut
|
||||
CMP.MSG = sMsg
|
||||
|
||||
-- costruisco le figure (rettangoli) rappresentative di alzatine e frontalini
|
||||
for SideNum = 1 , #SideTab do
|
||||
if (SideTab[SideNum].b ~= 0 and SideTab[SideNum].b ~= nil) then
|
||||
local SVect = SideTab[#SideTab].e
|
||||
local EVect = SideTab[#SideTab].f
|
||||
local Pz; local Ly; local BaseL; local HeigthL
|
||||
-- caso di alzatina
|
||||
if SideTab[SideNum].b == 1 then
|
||||
Pz = EgtGroup(GDB_ID.ROOT,GDB_RT.LOC) -- nuova parte per alzatina o frontalino
|
||||
EgtSetName( Pz,"Pz"..SideNum.."-A")
|
||||
Ly = EgtGroup(Pz,GDB_RT.LOC) -- layer della figura
|
||||
EgtSetName(Ly,'OutLoop')
|
||||
BaseL = EgtCurveLength( SideTab[SideNum].a)
|
||||
local HeigthL = CMP.A_Height
|
||||
elseif SideTab[SideNum].b == 2 then
|
||||
local Pz = EgtGroup(GDB_ID.ROOT,GDB_RT.LOC) -- nuova parte per alzatina o frontalino
|
||||
EgtSetName( Pz,"Pz"..SideNum.."-F")
|
||||
local Ly = EgtGroup(Pz,GDB_RT.LOC) -- layer della figura
|
||||
EgtSetName(Ly,'OutLoop')
|
||||
local BaseL = EgtCurveLength( SideTab[SideNum].a)
|
||||
local HeigthL = CMP.F_Height
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ++++++++++++++++++++++++++++ QUI ++++++++++++++
|
||||
|
||||
Pt = EgtSP( SideTab[SideNum].a) + VRotated( SideTab[SideNum].e*dDim, -90)
|
||||
--
|
||||
--
|
||||
--
|
||||
-- chiamo funzione DrawRect (Lay, Pt, Base, Altezza, Vect, sName)
|
||||
DrawRect (Lay, Pt, BaseL, HeightL, Vect, sName)
|
||||
|
||||
|
||||
end
|
||||
end -- for
|
||||
|
||||
--[==[
|
||||
-- Lati
|
||||
local stdoffset = 1
|
||||
local LblL1 = AddLabel(Ll,l1,stdoffset,CMP.N3,dim,-90,RED())
|
||||
-- EgtSetInfo(LblL1,"Var",1)
|
||||
local LblL4 = AddLabel(Ll,l4,stdoffset,CMP.N4,dim,-90,RED())
|
||||
--EgtSetInfo(LblL2,"Var",2)
|
||||
-- Etichetta del centro della figura ( = PUNTO DI INSERIMENTO )
|
||||
local ln01 = EgtLinePDL(Ll,ptXY0-Vector3d(dim*.25,0,0),0,dim*.5)
|
||||
local ln02 = EgtLinePDL(Ll,ptXY0-Vector3d(0,dim*.25,0),90,dim*.5)
|
||||
local ln1 = EgtLinePDL(Ll,ptXY0,45,dim) pt1 = EgtEP(ln1)
|
||||
local ln2 = EgtLinePDL(Ll,pt1,0,dim)
|
||||
local lblXY = AddLabel(Ll,ln2,stdoffset,"("..CMP.N1..";"..CMP.N2..")",dim,90,RED())
|
||||
EgtErase(ln2)
|
||||
]==]
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
_G.CMP_Draw = CMP_Draw
|
||||
--CMP_Draw(true)
|
||||
--EgtZoom(SCE_ZM.ALL)
|
||||
@@ -9,6 +9,8 @@
|
||||
-- 00e 16/07/2021
|
||||
-- 00f 20/07/2021
|
||||
-- 21/07/2021 - aggiornato progetto in GIT
|
||||
-- 26/07/2021 - 'chiuso' i rettangoli, noiminati i rispettivi lati
|
||||
-- - studio casi per inserimento info per tagli inclinati
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EgtBase')
|
||||
@@ -200,16 +202,18 @@ local function CMP_Draw(bPreview)
|
||||
Pz = EgtGroup(GDB_ID.ROOT,GDB_RT.GLOB) -- nuova parte per alzatina o frontalino
|
||||
Lay = EgtGroup(Pz,GDB_RT.GLOB) -- layer della figura
|
||||
EgtSetName(Lay,'OutLoop')
|
||||
EgtSetColor(Lay,RED(),100,true) -- Ok=1
|
||||
BaseL = EgtCurveLength( Side)
|
||||
sName = "A"
|
||||
sName = "A"..SideNum.."-A-"
|
||||
HeightL = AH --(=CMP.A_Heigth)
|
||||
elseif SideTab[SideNum].b == 2 then
|
||||
Pz = EgtGroup(GDB_ID.ROOT,GDB_RT.GLOB) -- nuova parte per alzatina o frontalino
|
||||
Lay = EgtGroup(Pz,GDB_RT.GLOB) -- layer della figura
|
||||
EgtSetName(Lay,'OutLoop')
|
||||
EgtSetColor(Lay,GREEN(),100,true) -- Ok=1
|
||||
BaseL = EgtCurveLength( Side)
|
||||
sName = "A"..SideNum.."-F-"
|
||||
HeightL = FH --(=CMP.F_Heigth)
|
||||
sName = "F"
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -10,9 +10,13 @@ print( 'EgtCompo started')
|
||||
-- e con opzione per esploderlo o meno
|
||||
function DrawRect (Lay, Pt, BaseL, HeightL, Vect, sName)
|
||||
local lA = EgtLinePVL(Lay,Pt,VRotated(Vect,-90),HeightL)
|
||||
EgtSetName(lA,sName.."l4")
|
||||
|
||||
|
||||
EgtSetName(lA,sName.."l2")
|
||||
local lB = EgtLinePVL(Lay,EgtEP(lA),Vect,BaseL)
|
||||
EgtSetName(lB,sName.."l3")
|
||||
local lC = EgtLinePVL(Lay,EgtEP(lB),VRotated(Vect,90),HeightL)
|
||||
EgtSetName(lC,sName.."l4")
|
||||
local lD = EgtLine(Lay,EgtEP(lC),EgtSP(lA))
|
||||
EgtSetName(lD,sName.."l1")
|
||||
|
||||
|
||||
end
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user