ArchiFORUM
http://archiforum.cz/

Makra pro vlastní okno
http://archiforum.cz/viewtopic.php?f=9&t=6779
Stránka 1 z 1

Autor:  vojta.sl [ ned bře 06, 2016 6:37 pm ]
Předmět příspěvku:  Makra pro vlastní okno

Dobrý den,

na podobné téma jsem našel jeden příspěvek, ale moc moudrý jsem z toho nebyl. Trochu jsem se v tom patlal, ale jediné čeho jsem docílil bylo oplechování, které se mi ale zobrazovalo i s vyvolaným oknem a ve špatné šířce.

O co jde:
Vytvořil jsem si vlastní okno a chtěl bych mu přidat některé parametrické vlastnosti pomocí vyvolání makra (tak jak to dělají okna AC, aspoň co jsem vyčetl z kódu). Pro začátek by stačilo:
-parapetní plech
-čáry otevření
-ostění (pro zateplení špalet)

Soubor v kterém jsem to zkoušel jsem vymazal..
Ale dělal jsem to tak že jsem vyvolal např.: Okno 18.gsm a vypisoval parametry, které jsem pak přidal v PARAMETRECH.

Podle mě to, ale dělám od začátku špatně...
Prosím o pomoc. Nemám se s tímto od čeho odpíchnout.


Děkuji Vojta

Autor:  jirat [ pon bře 07, 2016 3:14 pm ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Můžete konkrétněji napsat co má být přesně výsledkem, proč chcete (co Vás k tomu nutí) postupovat zrovna tímto postupem?

Autor:  vojta.sl [ stř bře 09, 2016 1:17 pm ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Výsledkem by mělo být okno (objekt okna), který bych mohl zobrazit v pohledech aniž bych musel něco dokreslovat čarama. A v půdorysu bych nemusel dokreslovat (domodelovávat špalety). Parapetní plech - kvůli vizualizaci...ale to není zas tak důležité.

S makrama nemám vůbec zkušenosti..
Vycházel jsem z: viewtopic.php?f=8&t=2225


Určitě bych si to mohl napsat ve svém kódu, ale rád bych do toho pronikl takto - pokud to jde.


Díky V.

Autor:  jirat [ čtv bře 10, 2016 1:37 pm ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Dobrý den,
omlouvám se, ale pořád tomu nerozumím. Co je tedy zadáním a co má být výsledek?
Důvod, proč to tak chcete řešit? Nedalo by se to obejít jiným postupem, nevystačíte si nějakým nastavením stávajících oken?

Určitě nepočítejte s tím, že se Vám v nějakém rozumném čase podaří vytvořit vlastní parametrické okno, které bude fungovat tak jako objekt z knihovny ArchiCADu.
Nějaká makra určitě použít můžete (jedná se pouze o volání pomocí funkce CALL jiného objektu v rámci knihovny), ale konkrétní makra jsou vždy dost svázaná s konkrétní verzí ArchiCADu a zrovna v případě oken a dveří se s každou verzí mění. Tedy založit na nich funkčnost nějakého vlastního prvku není ideální. (tedy pokud neuvažujete o možnosti, že ve všech nových verzí AC budete pořád používat starou-současnou verzi knihovny).

Proniknout do současného "šíleného" systému maker nebude jednoduché. Aby to bylo ještě složitější, tak se makra volají do sebe i přes několik úrovní. A pochopit o co v každém konkrétním makru zrovna jde a které parametry se z první úrovně do poslední přepisují, vyžaduje dost zdlouhavou analýzu. Struktura maker bývala někde na stránkách Graphisoftu, ale teď se mi ji nepodařilo nalézt, budete se tím muset asi prokousat pomocí pokusu-omylu. Což bude bez znalosti konkrétní struktury téměř na "dizertační práci".

Něco málo informací najdete zde:
http://gdl.graphisoft.com/gdl-basics/su ... es-macros/
http://www.graphisoft.com/ftp/techsuppo ... itle3usage

Popř. zkuste prohledat forum http://archicad-talk.graphisoft.com/


Pokud se do toho budete chtít opravdu pustit, tak určitě musíte začít tím, že použijete nějaké standardní okno jako šablonu Vašeho GDL prvku (tak, aby v soupisu parametrů byly veškeré potřebné parametry). Potom musíte zjistit, které makro ovládá tvar, které pouze nějaká nastavení a jakými parametry a v jakou chvíli se konkrétní makra volají a jak ovládají.

Ještě doporučuji si rozbalit knihovnu archicadu, aby jste si mohl bez složitějšího hledání a vyvolávání objektů prohlédnout všechna makra. Knihovnu rozbalíte pomocí příkazu Soubor -> knihovny a prvky -> Rozbalit kontejner
Alternativně se dají jednotlivá makra-objekty vyvolávat přímo z GDL popisu tak (což je praktické ve chvíli, kdy chcete odhalit strukturu jednoho konkrétního objektu), že označíte název makra (tedy text v uvozovkách za příkazem CALL) a stisknete CTRL+SHIFT+O (Otevřít objekt)


Lépe Vám poradit neumím, protože současnou strukturu maker neznám. Jedině snad, abyste se na to vykašlal, protože to podle mě nestojí za to.
Snad jedině, abyste lépe popsal a konkretizoval zadání, třeba přijdeme na jinou snadnější cestu.

Autor:  vojta.sl [ pon bře 28, 2016 5:18 pm ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Děkuju za vyčerpávající odpověď :-)
Představoval jsem si to asi moc pohádkově.

Ty čáry otevření... Dalo by se to nějak propojit s "VOLBY ZOBRAZENÍ MODELU"?
Nejspíš potřebuji zjistit název proměnné, která po zatržení ve VOLBÁCH, zobrazí mou 3d čáru pomocí IF?


Kód:
IF "zobrazit čáry otevření ve 3D zobrazeních - okna" = 1    THEN

LIN_ x1, y1, z1, x2, y2, z2

ENDIF


Díky

Autor:  jirat [ úte bře 29, 2016 10:00 am ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Testování probíhá voláním Globálního nastavení knihovny, konkrétně makra "LibraryGlobals13", ve kterém jsou definovány mimo jiné tyto parametry:

`Zobrazit čáry otevření ve 3D zobrazeních`
D_showBOpLine3D `na dveřích` (bool)
W_showBOpLine3D `na oknech` (bool)
S_showBOpLine3D `na střešních oknech` (bool)

`Typ čáry na straně otevření`
gs_opline_type_m (int - 1,2,3)

`Typ čáry na opačné straně`
gs_opline_type_m_out (int - 1,2,3)

`Orientace čáry`
gs_opline_style_m (int - 1,2)


Po rozbalení knihovny archicadu (pomocí Soubor -> Knihovny a objekty -> Rozbalit kontejner ...) je možné ve složce Knihovna objektů 19\3. MACROS 19\Base Macros 19\Library Globals 19 v jednotlivých makrech zjistit i další zavedené parametry



Ve vlastním scriptu se konkrétní volba testuje pomocí podmínky

Kód:
success = LIBRARYGLOBAL ("LibraryGlobals13", "D_showBOpLine3D", mujParametr)
IF success > 0 AND mujParametr ... THEN
...
ENDIF

kde success > 0 je dotaz jestli se volání globálního nastavení "povedlo", mujParametr ... může být jakékoliv testování vrácené hodnoty, přičemž mujParametr bude obsahovat zvolenou hodnotu z parametru "D_showBOpLine3D", který je zavedený do projektu pomocí makra "LibraryGlobals13"


Pomocí tohoto postupu je dokonce možné vytvořit v rámci "Voleb zobrazení modelu" vlastní paletku parametrů, která bude ovládat vlastní knihovní prvky (mimo objekty knihovny ArchiCADu).

Autor:  vojta.sl [ stř srp 17, 2016 9:02 pm ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Tak konečně jsem se k tomu dostal...
Mockrát děkuji - zapínání a vypínání čar funguje bezvadně.

Měl bych ještě pár dotazů:
1) Čáry otevření jsem si nakreslil morfem (pro začátek to stačilo) - jednu plnou a druhou přerušovanou takže na ně ale nemůžu aplikovat "gs_opline_type_m_out". Pomocí LIN_ jsem si nakreslil čáry otevření ale už nevím jak na ní aplikovat typ čáry. V půdorysu se mi typ čáry mění bez problému. (v půdorysu jsem to jen zkoušel jak to funguje)

Zjednodušeně jak jsem to provedl:
hlavní popis:
Kód:
success = LIBRARYGLOBAL ("LibraryGlobals13", "gs_opline_type_m_out", typcary)

2D
Kód:
LINE_TYPE typcary
LINE2 0,0,5,5

3D
Kód:
LINE_TYPE typcary
LIN_ 0,0,0,5,5,5


2) Když okno vykážu v tabulce, nezobrazují se u něj automatické kóty u "Pohledu ze strany" :-( a čáry otevření z obou stran mi splývají v jednu tak že to vypadá jako čára plná (hned pod ní je archicadovské okno a to se zobrazuje tak jak má - jen přerušovaně a plná není vidět). Mohl bych to řešit tak že čáry otevření budou prostě jen na jedné straně, ale to je poslední možnost...


Děkuji

Autor:  jirat [ čtv srp 18, 2016 10:09 am ]
Předmět příspěvku:  Re: Makra pro vlastní okno

Příkaz LIN_ ve 3D může zobrazovat pouze plnou čáru "drát", obecně ve 3D není možné zobrazovat "šrafované" čáry. Pokud takovou čáru chcete ve 3D udělat, musí se skládat z mnoha krátkých čárek, které budou vykresleny každá samostatným příkazem LIN_.

Standardní okna ArchiCADu vykreslují čáru otevření různou pro vnitřní a vnější stranu. Prostorově jsou umístěné vždy na konkrétním povrchu. Pokud je výplň křídla neprůhledná (nebo pro dané zobrazení nastavená jako neprůhledná) je vidět jenom jedna (správná) čára otevření. (pokud to nefunguje, pomůže vypnutí průhlednosti ve 3D)

Automatické kóty by měli normálně fungovat (za předpokladu, že je okno vyrobeno správně a pokud fungují správně parametry A,B - tedy hodnoty šířky a výšky okna) a v nastavení automatického kótování v tabulkách je vybraná volba NOMINÁLNÍ ROZMĚR, pokud byste chtěl kótovat i ostatní rozměry, musí být pro ně vytvořené parametry (ac_wallhole_width, ac_unit_width ...) a k nim odpovídající HOTSPOTY ve 3D.

Stránka 1 z 1 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/