Vel-kod förklaringar till aaabalk.vel och aaabalkDlg.vel

Index


Allmänt:

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.


aaabalk.vel


#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


aaabalkDlg.vel


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


Index

Allmänt
Kvar att göra
Till toppen av kodförklaringarna
aabalk.vel
aaabalkDlg.vel

#define
#include <>

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 ()

Till toppen av kodförklaringarna