gdje bi mogao naći više informacija o dodatnim naredbama unutar .cps datoteka
konkretno koji sve parametri se koriste kod naredbe LoadParentedElement, ili što radi elm.childdaska?
hvala
Na žalost, ne postoji manual za skripte. Unatoč tome, dosta možete naučiti pretraživanjem skripti koje se nalaze u mapi Skripte i njezinim podmapama.
Program “Notepad++” kojeg možete pronaći u mapi “Extra” ima odlično pretraživanje unutar datoteka (Ctrl+Shift+F).
Ako ne možete pronaći, pitajte ovdje.
Konkretno,
LoadParentedElement(e,FileName)
će učitati element s diska i postaviti ga u element.
Evo i konkretnog primjera koji iz osnovne mape elemenata učitava element Fronta0.e3d u tekući element iz kojeg se pokreće skripta.
var
elm:telement;
begin
elm:=LoadParentedElement(e,ElementFolder+'FRONTA0.e3d');
end.
elm.childdaska je objekt koji označava daske iz elementa.
Na primjer, za pretraživanje svih dasaka u nekom elementu se radi:
var
i:integer;
d:tdaska;
elm:telement;
begin
for i := 0 to elm.childdaska.count-1 do begin
d:=elm.childdaska.daska[i];
if d.visina>1200 then nekaObrada(d);
end
Nije potrebno pregledavati daske jer je fronta element i ima tip elementa “fronta”. Ponekad daske unutar fronte nemaju svoj tip “fronta”. Mogu biti “okvir” ili “uklada”.
Inače, ako je potrebna informacija o roditelju fronte, može se dobiti i bez skripti. Može se u šifru elementa fronta staviti %NE%/%TPNE%.
Tada će šifra fronte glasiti naziv fronte/naziv roditelja. Na primjer, ako se element zove “Podni_obicni”, a njegova fronta “Vrata_obicna”, šifra će glasiti “Vrata_obicna/Podni_obicni”. Šifra elementa se lako postavlja u bilo koji ispis ili etiketu za dasku.
ok, kako bi onda mogao napraviti da mi se nazivu fronte doda naziv parent objekta?
var
i:integer;
d:tdaska;
imeparenta: string; // neka varijabla koja bi detektirala naziv elementa koji ima frontu
elm:telement;
nazivdaske: string
imeparenta=telement.naziv // prije petlje ne bi bilo loše povući ime trenutno odabranog elementa?
begin
for i := 0 to elm.childdaska.count-1 do begin
d:=elm.childdaska.daska[i];
if d.tipdaske=fronta then naziv(d)=naziv(d)+imeparenta;
// kako zapisujem nazad novi naziv daske?
end
odlično! pozabavit ću se s tim.
ideja je napraviti skriptu koja ima zadatak dodati nazivu fronte naziv “parent” objekta.
hodogram bi išao ovako:
1. odabere se cijeli element
2. makro uzima naziv elementa – npr. VisokiElement1
3. prolazi se kroz sve daske odabranog elementa
4. ako je daske = fronta onda je novi naziv fronte = originalni naziv+”_VisokiElement1″
5. po završetku javi da je broj naziva fronta koji je promijenjen
Možda nakon toga napraviti globalnu skriptu koja bi to napravila svim elementima u projektu.