Vel-kod förklaringar till aaabalk.vel och aaabalkDlg.vel
Variablerna som slutar med 1är oftast i insättningsänden av profilen, ex AngelP12 eller Turn1. Den andra ändens variabler slutar en 2:a, ex lengd2.
Detta element har sin insättningspunkt i ena kortänden, centrum profil/mitten
av kapningen. Dvs om man kapar änden på profilen förlängds profilen med
halva kapsnittet.
Detta medför att den längd som matas in i dialogrutan EJ är den maximala
längden på profilen!! Enda undantaget är om bägge ändarna är okapade.
Programmet skriver ut i det jot-fönster som PRO/Reflex startades i vilken dimension, kaplängd, vikt och mantelyta på det aktuella elementet.
#include <drawlib.vel>
Includerar en biblioteks-fil. En vanlig C-kod rad. Sökvägar defineras i Makefile.
Till toppen av kodförklaringarna
#define CENTRUML 1000
#define kan man använda i en kod när man har ett värde som används ofta
men om man inte vill skriva ut överallt eller vill kunna förändra under
kodandets gång.
Ett bra exempel på det är PI där det är enklare och lättare att förstå
om man definerar PI som 3.14159. En formel kan då bli: x= y*PI.
När kompilatorn startar byter den ut alla define-variabel mot det värdet,
dvs man
EJ förändra en define-variabel i kodandet (ex CENTRUML=CENTRUML+7 FUNGERAR EJ!)
Till toppen av kodförklaringarna
float LENGTH = 3.0m integer DOSTRETCH = 1
DOSTRETCH är en vel variabel som krävs för att elementet skall kunna stretchas,
dvs kunna pricka in längden mellan två punkter. De två punkterna definerar
sen längden på elementet (LENGTH) och rotation i xy-planet.
LENGTH är i vårat fall avståndet från centrum kortände till centrum kortände.
OBS!! EJ maxlängd om ändarna är snedkapade!
Till toppen av kodförklaringarna
float h = 96mm float b = 100mm float t = 8.0mm float d = 5.0mm float R = 12mm float F = 0.561 float g = 16.7
Variabler som hämtar värde från balktabellen. (Tibnor Jan 1995)
Till toppen av kodförklaringarna
string MATERIAL = "steel"
Reflex standard-variabel för materialval.
Till toppen av kodförklaringarna
string shape = "HEA" string ipe = "100" string hea = "100" string heb = "100"
Variabler som kontrollerar viken balktyp och vilken dimension för balktypen som är vald i dialogrutan.
Till toppen av kodförklaringarna
string balktyp = "Synlig kant"
Flaggar om kanten skall vara synlig eller ej.
Till toppen av kodförklaringarna
string OMKap1 = "Ök X+" string OMKap2 = "Uk X+" float TKap1 = 0 float TKap2 = 0
Variabler som kontrollerar hur balken skall kapas i de olika ändarna,s samt
vilket vinkelvärde.
TKap-variablerna tar sitt värde från dialogrutan.
Till toppen av kodförklaringarna
float Rotl = 0.0 float Rotp = 0.0 float Rote = 0.0
Rotationsvärden runt de tre axlarna, lutning, plan och egen axel.
Till toppen av kodförklaringarna
integer extrude1 integer balk2 integer balk3 integer balk2A
Variabler som betecknar kroppen till den 3Dimensionella profilen.
Till toppen av kodförklaringarna
float Angel3D1 = 0 float Angel3D2 = 0
Variabler som anger kapvinkel i de två ändarna för 3D-vyn och används för att beräkna förflyttningar i längdsled.
Till toppen av kodförklaringarna
float Turn1 = 0 float Turn2 = 0 float Adist1 = 0 float Bdist1 = 0 float Adist2 = 0 float Bdist2 = 0
Variabler som ansger hur mycket "kaptrissorna" till 3D-vyn skall vridas samt längd och djup på dessa trissor.
Till toppen av kodförklaringarna
float lengd1=0 float lengd2=0 float kaplengd=0
Variabler som anger dellängder på elementet.
lengd1 och lengd2 betecknar delstäckan mellan centrum kortsida till änden på profilen.
kaplengd betecknar kaplängden på profilen.
Till toppen av kodförklaringarna
float YTA=0 float VIKT=0
Variabler för beräkning av mantelyta och vikt på profilen. Värden beräknas på den maximala längden och borttagna delar räknas EJ bort.
Till toppen av kodförklaringarna
integer Dim = 0
Anger den valda dimensionen.
Till toppen av kodförklaringarna
float AngelP11 = 0 float AngelP12 = 0 float AngelP21 = 0 float AngelP22 = 0
Anger kapvinklarna runt de två axlarna i varje ände för beräkning vid uppritande av de plana vyer.
Till toppen av kodförklaringarna
float di1 = 0 float di2 = 0 float di3 = 0 float di4 = 0 float di5 = 0 float di6 = 0 float di7 = 0
Anger olika längder vid uppritande av de plana vyerna.
Till toppen av kodförklaringarna
void OnCreate ()
Funktionen tillhör vel's callback funktioner och endast körs första gången elementet skapas! T.ex
när projectet startas eller skall sättas in.
I vårat fall hämtar den startvärden från balktabellen och justerar värdena.
Till toppen av kodförklaringarna
void OnEdit ()
Funktionen tillhör vel's callback funktioner och körs varje gång som ett object editeras, både
i uppstart av Edit/Inquire och när man klickar på OK i dialogrutan för elementet.
I vårat fall hämtar den startvärden från balktabellen och justerar värdena.
Till toppen av kodförklaringarna
void OnSave ()
Funktionen tillhör vel's callback funktioner
Till toppen av kodförklaringarna
void OnWrite ()
Funktionen tillhör vel's callback funktioner
Till toppen av kodförklaringarna
void start ()
Denna funktion kontrollerar och justerar variabler så att de har rätt värden
från de val man gör i dialogrutan.
Den justerar kapvinklarna så att de liggen inom området 0-85 grader.
Beräknar kaplängd, vikt och mantelyta.
Till toppen av kodförklaringarna
void setValueBALK ()
Denna funktion läser in värden från datafilen och fördelar dem så att rätt profildata överförs, till h, b, t, R osv, efter de val man gjord i dialogrutan
Till toppen av kodförklaringarna
view View3d ()
En vel-standard funktion som definerar den 3Dimensionella vyn som används även
i elevation-läget mellan de olika fasta lägena (north, east, west, south).
Beroende på om den ena änden eller den andra eller bägge ändarena kapas
så kallar denna funktion på de funktioner som ritar upp en okapapad profil,
ena kaptrissan och den andra kaptrissan.
DRWShow() gör så att PRO/Reflex ritar upp modellen i programmet.
Till toppen av kodförklaringarna
void rita3D ()
Denna funktion ritar upp själva profilkroppen.
Snittytan ritas upp och läggs in i en assembley, vilket krävs av vel för att kunna extrudera profilen. Men innan den extruderas förflyttar vi den bakåt halva stäckan som kapas bort i insättningsänden. Orsak se allmänt i toppen av dokumentet.
Till toppen av kodförklaringarna
integer cutEdge1 (integer IN1,integer IN2)
Denna funktion ritar upp kaptrissan som ligger i insättningsänden och som används i view3D.
En triangel ritas upp med en viss höjd och med en bestämnd vinkel. Triangelns
höjd och djup kan vara profilens höjd eller bredd beroende på hur änden
skall kapas.
Triangeln extruderas med ett visst djup.
Den färdiga trissan roteras till rätt läge runt profilens egna axel och
sedan görs en booleansk operation av de två volymerna (DRWsculpt).
De överflödiga assamblena tas bort.
Till toppen av kodförklaringarna
integer cutEdge2 (integer IN1,integer IN2)
Denna funktion ritar upp kaptrissan som ligger i motsatt ände till insättningspunkten och som används i view3D. Övrigt se cutEdge1-funktionen.
Till toppen av kodförklaringarna
view plan ()
En vel-standard funktion som definerar den plana vyn som används i PRO/Reflex.
Beroende på hur profilen roteras runt sin egel axel och lutas anropas funtioner
för de olika vy-beskrivningarna.
Funktionen ritar upp en centrumlinje.
Till toppen av kodförklaringarna
void vy1 ()
Funktionen ritar upp en plan vy av profilen där man tittar emot flänsens breda sida, dvs livet blir dold under livet och ritas hidden om balktyp är inställd för det.
Funktionen börjar med att definera olika längder (di1-di7).
Sedan ritas livet ut om balktyp == "Synlig kant".
Själva "huvudkroppen" ritas ALLTID ut, dvs ytterkantena på långsidan och
kortsidan.
Om balktyp == "Synlig kant" och om änden är kapad ritar vi ut ett skuret profilsnitt. Kapvinkeln avgör om den skall bli skymd eller heldragen.
En rotation av assembleyn gör att rotation runt egen axel fungerar.
Lutning av profil fungerar ej just nu i koden!
Till toppen av kodförklaringarna
void vy2 ()
Funktionen ritar upp en plan vy av profilen där man tittar emot flänsens smala sida, dvs man ser flänsen underst och överst med livet emellan.
Funktionen börjar med att definera olika längder (di1-di7).
Sedan ritas ytterkanten ut. Om kanten är snedskuren i planet ritas en sned
linje annars ritas de vertikala linjerna som betecknar ytterkanten. Denna
procesdur upprepas i båda ändarna.
Själva "huvudkroppen" ritas ALLTID ut, dvs ytterkantena på långsidan och
kortsidan.
Om balktyp == "Synlig kant" och om änden är kapad ritar vi ut ett skuret profilsnitt. Kapvinkeln avgör om den skall bli skymd eller heldragen.
En rotation av assembleyn gör att rotation runt egen axel fungerar.
Lutning av profil fungerar ej just nu i koden!
Till toppen av kodförklaringarna
void vy3 ()
Funktionen ritar upp en plan vy av profilen där man ser ett snitt av profilen.
En rotation av assembleyn gör att rotation runt egen axel fungerar.
Lutning av profil fungerar ej just nu i koden!
Till toppen av kodförklaringarna
Dialog koden är uppbyggd så att själv knapparna defineras överst och längre
ner placerar man ut dem inbördes varandra.
Placering av knappar kan ske direkt i definitionen men jag har valt detta
förfaringsätt.
Att tänka på när komplettering av andra dimensioner och profiltyper är att i dialogrutan är man tvungen att själv skriva in profilnr-värdet. Det fungerade inte för mig att få koden att själv läsa in profilnr till dialogrutan.
Till toppen av kodförklaringarna
Kvar att göra i koden:
Till toppen av kodförklaringarna
Allmänt
Kvar att göra
Till toppen av kodförklaringarna
aabalk.vel
aaabalkDlg.vel
float Adist1
float Adist2
float Angel3D1
float Angel3D2
float AngelP11
float AngelP12
float AngelP21
float AngelP22
float Bdist1
float Bdist2
float F
float LENGTH
float TKap1
float TKap2
float Turn1
float Turn2
float R
float Rotl
float Rotp
float Rote
float VIKT
float YTA
float b
float d
float di1
float di2
float di3
float di4
float di5
float di6
float di7
float g
float h
float kaplengd
float lengd1
float lengd2
float t
integer Dim
integer balk2
integer balk2A
integer balk3
integer cutEdge1 ()
integer cutEdge2 ()
integer extrude1
string MATERIAL
string OMKap1
string OMKap2
string ipe
string balktyp
string hea
string heb
string shape
void OnCreate ()
void OnEdit ()
void OnSave ()
void OnWrite ()
view View3d ()
view plan ()
void rita3D ()
void setValueBALK ()
void start ()
void vy1 ()
void vy2 ()
void vy3 ()