Kako se pišu makroi ?

Ako trebate savjet kako napraviti stol, krevet, ormar ili nešto treće potražite savjet ovdje.

Kako se pišu makroi ?

Postby matija_corpus » 28 Jul 2011, 11:24

Bušenje elemenata sa makroima

Makro spojevi su spojevi koji se primjenjuju u situacijama gdje bušenje daske izričito ovisi vrijednostima objekata (dasaka) koje spajamo (X, Y, Z, visina,...), jer promijena neke od tih vrijednosti utječe na zavšni izgled bušenja tog objekta (daske). Npr. Promijenom dubine elementa treba se promijeniti i broj rupa i sl...

Primjer1:
Bušenje boka i poda
U ovom primjeru bušiti će se bok i pod sa dvije rupe fi 8 odmaknute za 50 mm sa prednje strane i dvije rupe fi 8 za 50 mm odmaknute sa stražnje strane, međusobno razmaknute 32 mm te jedna rupa fi 5 u sredini. Rupe u podu ce biti duboke 23 mm a u boku 14 mm.
ormaric.jpg
ormaric.jpg (6.99 KiB) Viewed 9906 times

Prvo je potrebno je selektirati dva objekta (daske) koji se spajaju te napraviti link (spoj) pritiskom na prvu tipku u modulu bušenje 'napravi link'

Pritiskom na tipku 'Napravi link' otvara se prozor koji se sastoji od popisa svih linkova (spojeva) koji se nalaze u toj dasci ili elementu i opisa tog linka (spoja), odnosno koje daske čine taj spoj. U ovom slučaju su to objekti Bok_l i Pod. Raspored tih objekata (da li će biti u lijevoj ili desnoj tablici ovisi o tome koji je bio prvi selektiran prilikom kreiranja linka).
Pristup vrijednostima iz dasaka dobivamo upisom OBJ1 ili OBJ2.
OBJ1 je uvijek ona daska na kojoj se vrši radnja. Kod upisa vrijednosti za bok OBJ1 će biti bok, a kod upisa vrijednosti za pod OBJ1 će biti pod.
tablica.jpg

Pritiskom na tipku (papir i olovka) otvara se prazan predložak za upis vrijednosti bušenja.
U tom predlošku pritiskom na tipku 'R' otvara otvara se raster u koji se upisuju vrijednosti. Pritiskom na tipku '?' pojaviti ce se 'help' sa opisom na koja mjesta se moraju upisati kakve informacije.

primjer za upis informacija:

[RASTERX]
GB= broj rupa u rasteru
GN= naziv grupe
GD= dubina rupa
GF= promjer rupa
GX= x položaj
GY= y položaj
GS= ploha (0..5)
GK= kut rotacije
GP= tip prolaza (1..3)
GR= razmak izmedju rupa

Vrijednosti koje se upisuju mogu biti fiksno zadane brojke i mogu biti formule koje če izračunati vrijednost koja tamo mora biti upisana.


U ovom primjeru položaj rupa na boku ovisiti će o položaju poda u elementu te o njegovoj debljini. Promjenom položaja poda po Y osi ili promjenom njegove debljine formula će izračunati mjesto gdje se trebaju te rupe bušiti. Formula će uzgledati ovako: (obj2.y-obj1.y+obj2.de/2)
U prvom djelu formule (obj2.y-obj1.y) provjerava se položaj dasaka u elementu (gdje se pod nalazi u odnosu na bok), i stavlja rupe na početak poda poY osi, a u drugom djelu (obj2.de/2) pomiče rupe za pola debljine poda.

Makro u boku će izgledati ovako:

[VARIJABLE]

[RASTER1]
GB=2
GN=prednje rupe
GD=14
GF=8
GX=50
GY=obj2.y-obj1.y+obj2.de/2
GS=1
GK=90
GP=0
GR=32

[RASTER2]
GB=1
GN=srednja rupa
GD=14
GF=5
GX=obj1.s/2
GY=obj2.y-obj1.y+obj2.de/2
GS=1
GK=90
GP=0
GR=0

[RASTER3]
GB=2
GN=straznje rupe
GD=14
GF=8
GX=obj1.s-50-32
GY=obj2.y-obj1.y+obj2.de/2
GS=1
GK=90
GP=0
GR=32

-sastoji se od tri rastera: prvi je za prve dvije rupe
drugi je za jednu rupu u sredini
treci je za zadnje rupe

a makro u podu će izgledati ovako:

[VARIJABLE]

[RASTER1]
GB=2
GN=prednje rupe
GD=23
GF=8
GX=50
GY=obj1.de/2
GS=3
GK=90
GP=0
GR=32

[RASTER2]
GB=1
GN=srednja rupa
GD=23
GF=5
GX=obj2.s/2
GY=obj1.de/2
GS=3
GK=90
GP=0
GR=0

[RASTER3]
GB=2
GN=straznje rupe
GD=23
GF=8
GX=obj2.s-50-32
GY=obj1.de/2
GS=3
GK=90
GP=0
GR=32

Nakon upisa svih vrijednosti, makro se aktivira pritiskom treće tipke u modulu bušenje 'Generiraj rupe' i evo rezultata.
izbusen.jpg
izbusen.jpg (7.02 KiB) Viewed 9906 times
User avatar
matija_corpus
 
Posts: 145
Joined: 08 Jun 2011, 07:44

Re: Kako se pišu makroi ?

Postby matija_corpus » 11 Aug 2011, 12:23

VARIJABLE I FORMULE

FORMULE

Makro spojevi su predviđeni da prilikom dimenzijskih ili konstrukcijskih promjena elementa sami prepoznaju novonastalu situaciju i adekvatno tome naprave izmjene. To utoliko pomaze da je npr: za spoj poda i boka lijevog te spoj poda i boka desnog dovoljno imati jedan a ne dva makroa a da rupe budu probusene sa ispravne strane.
Evo primjer kako ce se na boku izracunati pravilna strana busenja:
Corpus poznaje sve vrijednosti dasaka u elementu stoga u trenutku busenja zna koja se daska gdje nalazi, pa ako se busi bok lijevi i pod zna se da je X od poda veci od X-lijevog boka a ako se busi desni bok i pod je obrnuto X poda je manji od X-a desnog boka.

Kako to provesti kroz formulu???

GS=if(obj2.x>obj1.x;1;0)
ili u prevodu GS=ako je(pod.x veci od bok.x onda je 0 ili je 1)

Na ovaj nacin formula ce izracunati sa koje strane ce se bok busiti te se takav makro moze primjeniti u oba spoja (bok_L-pod, bok_D-pod)


VARIJBLE

Varijable se u makroima koriste kada postoje neke situacije koje nije potrebno izracunavti nego je dovoljno promijeniti njihovu vrijednost rucno a zapisane su na puno mijesta (npr grupa rupa).
potrebno je promijeniti FI rupe iz 5 u 8.

To se radi tako da se ispod naziva VARIJABLE kreira neka varijabla, zada se njezina vrijednost te se ona uvrsti umjesto brojke u poje za upis.

Kako to izgleda u makrou???

[VARIJABLE]
fi_rupe=5

[RASTER1]
GB=
GN=
GD=
GF=fi_rupe
GX=
GY=
GS=
GK=
GP=
GR=

U vrijednosti varijable se takodjer mogu uvrstiti formule.
User avatar
matija_corpus
 
Posts: 145
Joined: 08 Jun 2011, 07:44

Re: Kako se pišu makroi ?

Postby matija_corpus » 28 Dec 2011, 12:37

Evo par primjera cestih formula koje se koriste u makroima

ovo je primjer sa dve vrijednosti (jedna i druga)

=if(((obj1.s<180)and(obj1.s>100));rezulat_1;rezultat_2)


ovo je primjer sa dvije vrijednosti (jedna ili druga)

=if(((obj1.s<180)or(obj2.de>18));rezulat_1;rezultat_2)


ovo su dva IF-a

=if(obj1.v<400;2;if(obj1.v<600;3;4))


ovo su tri IF-a

=if(obj1.v<400;2;if(obj1.v<600;3;if(obj1.v<900;4;5)))
User avatar
matija_corpus
 
Posts: 145
Joined: 08 Jun 2011, 07:44

Re: Kako se pišu makroi ? JOINT spoj

Postby darko » 29 Dec 2011, 10:52

Ovo je primjer za frontu koja može biti lijeva ili desna.

Napravite jednostruki spoj(samo fronta, druge daskae u spoju nema). Ovaj makro stavite u frontu.

[VARIJABLE]

[JOINT]
JX=if(obj1.tipfronte=1;0;obj1.sirina)
JY=30
JZ=-5

[RASTER1]
J=0
GB=2
GN=raster1
GD=5
GF=8
GX=if(obj1.tipfronte=1;30;obj1.sirina-30)
GY=100
GS=0
GK=0
GP=1
GR=64

[RASTER2]
J=1
GB=2
GN=raster2
GD=10
GF=10
GX=15
GY=-deltay+100
GS=if(obj1.tipfronte=1;1;0)
GK=0
GP=1
GR=64

TIPFRONTE = 1 ljeva 2 desna fronta

JOINT sekcija velimakrou gdje da traži drugu daskau u odnosu na nulu obj1. U ovom slučaju lijevi ili desni bok.
Ako je daska pronadjena RASTER2 se primjenjuje na nju.
Na kojoj dasci se primjenjuje pojedina sekcija odredjuje "J" varijablja u sekciji. J=0 primjenjuje se na OGJ1, J=1 primjenjuje se na OBJ2.
darko
 
Posts: 451
Joined: 08 Jun 2011, 10:49

Re: Kako se pišu makroi ?

Postby Namjestaj1 » 04 Jan 2012, 19:10

Ako zelim da mi se na boku buše rupe za vodilice od metaboxa, a s obzirom da moze biti vidljiv različit broj ladica postoji li neka opcija za show/hide rastera rupa.
Znaci ako na visini od 720 mm imam 5 vodilica da mi buši pet redova rupa, a ako stavim 4 metaboxa da sakrije jedan red. I na koji se nacin te rupe npr. exportiraju na biese cnc.
Namjestaj1
 
Posts: 136
Joined: 17 Nov 2011, 12:22

Re: Kako se pišu makroi ?

Postby darko » 05 Jan 2012, 11:15

GB je roj rupa u rasteru. Ako je GB=0 rupe nebudu izbušene, i to je način "sakrivanja".
U tom slučaju formula za BR mora ovisiti o vanjskoj varijabli da bi reagiralo na broj ladica.

Jenostavnije je stavit makro u samu ladicu. U bok ili pod ladice. U JOINT sekciji se zada "gdje je bok elementa". Kad se u RASTER sekciji stavi J=1 taj raster se bude bušio na boku elementa.
Ako je to napravljeno na taj način onda svaka ladica buši rupe na boku za sebe. I nema potrebe za vanjskim varijablama.

Budem napravio primjer za to.
darko
 
Posts: 451
Joined: 08 Jun 2011, 10:49

Re: Kako se pišu makroi ?

Postby darko » 05 Jan 2012, 11:40

element sa ladicom i makroima je ovdje:
viewtopic.php?f=47&t=291

Makro u lijevom boku ladice

[VARIJABLE]

[JOINT]
JX=-obj1.x
JY=10
JZ=-10

[RASTER1]
J=1
GB=3
GN=raster1
GD=10
GF=8
GX=100+deltaz
GY=50-deltay
GS=1
GK=90
GP=1
GR=64

Dobro postavljen Joint je zapravo jedino bitno. Ostalo je maje više isto kao i u svim drugim makroima.
JOINT definira točku preklapanja. Corpus traži dali je ta točka ušla u neku dasku u elementu ili ju dira, ako da onda se na toj dasci buše rupe.
Joint točka se gleda od nulte točke "lijevog boka" (nulte točke OBJ1)
JX= - obj1.x = -48 što je u prostoru ladice =0 a u prostoru elementa = 2. Bok na kojem hoču rupe počinje od 0 i debljine je 18. Corpus je onih -48 preračunao u 2 a 2 je izmedju 0 i 18 i na taj način je našao lijevi bok i na njemu bude bušio rupe iz [RASTER1] sekcije. Probajte mjenjati X ladice da vidite šta se dogadja.

JY =10 U ovoj situaciji je manje bitna vrijednost jer je bok elementa prilično visok i bok ladice se "uvjek preklapa" sa bokom elementa.
JZ = -10 isto kao i JY, mali odmak u dubinu za svaki slučaj.

Makro u desnom boku ladice

[JOINT]
JX=sirina-obj1.x
JY=10
JZ=-10

[RASTER1]
J=1
GB=3
GN=raster1
GD=10
GF=8
GX=100+deltaz
GY=50-deltay
GS=0
GK=90
GP=1
GR=64

JX=sirina-obj1.x // sirina je sirina ladice =596 , obj1.x je x desnog boka ladice =550 i to daje rezultat 46.
U ladici je to 46 + x desnog boka ladice = 46 + 550 =596,
u elementu je to 596 + x položaj ladice = 596 + 2 = 598.
X desnog bok elementa =582 debljina je 18, dakle 598 je izmedju 582 i (582+18) i time se točka Jointa preklapa sa desnim bokom.
Naravno da ova preračunavanje nemorate raditi, to corpus radi sam. Ja sam ih ovdje stavio da pokušam pojasniti kako to zapravo radi.

U spajanjima daske koje se spajaju najčešče se i dodiruju pa je u JX,JY, JZ dovoljno upisati 0 ili +-1 ili sirinu ili visinu daske.
Kad se ne dodiruju treba uzeti u obzir njihove udaljenosti kao ovde u slučaju ladice.

Huh, za ovaj opis mi je trebalo 20 puta više vremena nego za same makroe :)
Nadam se da sam uspio bar malo objasniti način funkcioniranja JOINT a.

Ah da zaboravio sam.
DELTA varijable.

DELTAY je "obj2.y-obj1.y" ali u prostoru elementa. Što znači obj2.y je 100 (bok elementa) obj1.y = 20+ 201(y ladice) =221, 100-221=-121. Bok elementa je 121 mm ispod boka ladice.
Inače je obj2.y-obj1.y = 100 -20=80 što je krivo iako su y "točni" (inače je u spoju nemoguče imati dvije daske iz različitih elemenata osim putem JOINTA)
DELTAZ i DELTAX funkcioniraju na isti način.
darko
 
Posts: 451
Joined: 08 Jun 2011, 10:49

Re: Kako se pišu makroi ?

Postby darko » 13 Jan 2012, 01:16



Vjerojatno ima onih koji nemogu učitati ovaj element, ili makro ne radi kako treba.

ovdje je nova verzija kojom je element napravljen
http://www.corpus.hr/forum/viewtopic.php?f=8&t=16
darko
 
Posts: 451
Joined: 08 Jun 2011, 10:49

Re: Kako se pišu makroi ?

Postby darko » 13 Jan 2012, 01:26

Namjestaj1 wrote: I na koji se nacin te rupe npr. exportiraju na biese cnc.


Sorry previdio sam ovo pitanje.

Zavisno od software a na stroju CNI ili Biese works.
Uexportu ima više verzija za biese CNI, CID i BPP.
CNI je za CNI :)
CID i BPP su za Biese works.
BPP ne eksportira rupe nego makroe, zapravo varijable makroa. I ti makroi moraju biti napisani sa istim imenom i varijablama na stroju. Mislim da to nitko ne koristi.
darko
 
Posts: 451
Joined: 08 Jun 2011, 10:49

Re: Kako se pišu makroi ?

Postby Namjestaj1 » 14 Jan 2012, 11:38

Može li se u join opciju makroa upisati formula da recimo pod buši i lijevi i desni bok istovremeno. Napravio sam posebno za lijevi a posebno za desni i tako funkcionira ali dali je moguce da jedan makro na jednoj daski istovremeno buši dva boka na koja naiđe i kako bi to odprilike izgledalo.

Slika01.JPG
Namjestaj1
 
Posts: 136
Joined: 17 Nov 2011, 12:22

Next

Return to Kako da napravim...?

Who is online

Users browsing this forum: No registered users and 1 guest

cron