Zobrazit plnou verzi příspěvku: více visibility parametrů

kryspin
16.07.2013, 16:20
Dobry den,na ruznych diskuznich forech jsem nasel, ze neni mozne pridat do dynamickeho bloku vice parametru "visibility", je mozne ho umistit jen jednou a pak vytvorit vice "visibility states". Vetsinou to byly ale prispevky starsiho data, tak me zajimalo, zda se neco nezmenilo. Me osobne Acad dovoli umistit pouze jeden "visibility" parametr. To je ale dost neprakticke, zejmena pokud chci vytvorit blok, v nemz potrebuji vypinat a zapinat vice ruznych veci samostatne ve vsech moznych kombinacich. Reseni je udelat "visibility states" pro vsechny mozne kombinace, ale to mi prijde dost humpolacke a v pripade vice prvku i nemozne. Reseni by bylo umist do bloku vice "visibility" parametru a pro kazdy prvek nadefinovat patricne "visibility states" a pak vypinat a zapinat co je potreba. Zatim jsem ale neprisel na to jak. Zkousel jsem vytvorit pro kazdou vypinatelnou entitu blok s vlastni "visibility" a vsechny je pak seskupit do jednoho bloku. Jejich zapinani a vypinani krasne funguje v blockeditoru ale nikoliv uz pri vlozenem bloku...  Je nejake reseni?
kryspin2013-07-16 16:24:21

splonk
16.07.2013, 16:59
Dobry den,Nepomohla by funce LookUp... kde si vlastne nadefinujete ruzne "predem dane" kombinace (pokud to vubec lze...).Jinak ohledne poctu visibility state... jsem si soro na stopro jist, ze jich tam muzete dat jen 1.

kryspin
16.07.2013, 17:23
Myslim, ze psise ne, opet by bylo potreba nadefinovat vsechny mozne kombinace prvku a pak z nich vybirat, coz je humpolacke (navic uz pri trech je tech kombinaci 8, pokud pocitam spravne). Lepsi by bylo mit moznost graficky ten konkretni prvek vypnout nebo zapnout.

PepaR
16.07.2013, 17:43
Dobré odpoledne,standardní cestou nedocílíte více něž jednoho parametru viditelnosti na jeden blok, nicméně jak píše splonk, lze SI často vystačit s kombinací parametru viditelnosti a vyhledávání.Více parametrů viditelnosti přidat na jeden blok můžete, ale budete k tomu potřebovat utilitku visibility-add-eng.lsp. Ukázku takto vytvořených bloků najdete např. zde. Jedná se však o nestandardní postup.


PepaR2013-07-16 18:04:15

kryspin
17.07.2013, 12:16
Diky moc, na tento lisp uz jsem kdysi narazil, ale nepodarilo se mi ho spustit. Naloadoval jsem ho v blockeditoru, ale prikaz "visibility_add" je neznamy. Delam neco spatne? Pravdepodobne spatne nahravam ten lisp...

Vladimír Michl
17.07.2013, 15:32
LSP soubor stačí myší přetáhnout do okna AutoCADu nebo jej načíst pomocí [CMD]APLČTI[/CMD].

kryspin
18.07.2013, 11:08
Diky za radu, tenhle zpusob jsem neznal. Vyzkousel jsem ho a zda se, ze lisp se nacte v poradku, ale ani tak nefunguje (prikaz "visibility_add" je stale neznamy). Je mozne, ze mam v acadu nastavene nejake zabezpeceni, ktere nedovoli spoustet lispy?

Seiner
18.07.2013, 11:36
V nastavení AutoCAdu bych to nehledal. Co jsem tak mrknul do toho odkazovaného lispu (nevím, jestli do správné verze), tak visibility_add je "vnitřní" deklarace funkce. Takže volat byste ji musel jako lispovou funkci (visibility_add) - včetně závorek.
  Jediná funkce, kterou ten lisp definuje jako příkaz, je HIDEOBJ (defun c:hideobj ...
 
 

Seiner
18.07.2013, 11:43
Ostatně na té stránce v návodu to je napsáno se závorkami - chápu, že nemusí být hned jasné, že se to musí na příkazovou řádku psát i s těmi závorkami :-)

kryspin
18.07.2013, 11:43
aha, tak v tom pripade jsem totalne nepochopil jak se ten lisp vlastne pouziva.. v navodu je toto:To create such a block from a usual dynamic block
with one visibility parameter you should run steps:
1. Load visibility-add-eng.lsp in the block editor window containing your usual dynamic block
2. Add a new visibility parameter with (visibility_add)
3. Move new visibility parameter up with (visibility-up)
4. Add and edit visibility parameter states
5. Repeat steps 2-4 for other visibility parameters
6. Save your dynamic block

Seiner
18.07.2013, 11:55
Je to věc toho defun. Jestliže napíšete
(defun visibility_add (/ point_insert BLC-VIS-PAR name_visibility del-1 BLC-VIS-PAR-1 del5 del1010 del1071 subst301 st-360 neo-91 visibility-1 zam95 zapis zam96 zam97 eval-1 st-12 eval-12 p1-12-1 eval-2 final-1)...
tak nadefinujete funkci lispu a voláte ji tak - tedy v závorkách.
Jestliže napíšete (defun c:hideobj (/ answer)..., tak definujete příkaz AutoCADu a ten spustíte normálně zápisem názvu.
 

kryspin
18.07.2013, 12:01
se zavorkami me to teda fakt nenapadlo, ted jsem to vyzkousel, ale vyhodilo mi to error:Command: (visibility_add); error: no function definition: VISIBILITY_ADD

Seiner
18.07.2013, 12:05
A co řekne AutoCAD po načtení lispu. Podle mého by měl odpovědět C:HIDEOBJ. Pokud odpoví něco jiného, bude chyb tam. A v jakém AutoCADu to zkoušíte? V českém to bez úpravy asi nepůjde.

Seiner
18.07.2013, 12:08
Tak pardon - autor tam důsledně píše podrtžítka, takže by to mělo chodit i na CZ. (Já zkouším na Mechanical 2014 EN.)

kryspin
18.07.2013, 12:19
lisp se natahne zrejme v poradku, odpovi skutecne:Command: (LOAD "D:/Acad/shapes, lines, plt, stafáž/visibility-add-eng.lsp") C:HIDEOBJZkousim to v anglicke verzi 13Zvlastni, tak pri editaci nebo vytvoreni nekterych bloku me to umozni udelat prvni (visibility_add), behem toho to udela toto:Command: (visibility_add)Select point for placing Visibility Set: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: _.BParameterEnter parameter type [Alignment/Base/pOint/Linear/Polar/Xy/Rotation/Flip/Visibility/looKup]: _VSpecify parameter location or [Name/Label/Description/Palette]: _LEnter visibility property label <Visibility1>: Visibility-1Specify parameter location or [Name/Label/Description/Palette]:Enter number of grips [0/1] <1>:Command: _.BSAVECommand: ; error: quit / exit abortpak (visibility_up):Command: (visibility-up)Select required Visibility Set: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: _-BVSTATECurrent visibility state: VisibilityState0Enter an option [New/Set/Delete] <New>: _NEnter name of new visibility state: W5WEnter object visibility for new state [Hide all/Show all/Current visibility] <Current visibility>: _HCommand: _.undo Current settings: Auto = On, Control = All, Combine = Yes, Layer = YesEnter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back] <1>: (Lisp Expression) GROUPCommand: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: _.BVMODEEnter new value for BVMODE <1>: 0Command: _.BVMODEEnter new value for BVMODE <0>: 1Command: _.pointCurrent point modes:  PDMODE=35  PDSIZE=0.0000Specify a point: 0,0,0Command: "Visibility-1"Command: _.BSAVECommand:  .BSAVECommand: (command "_.-BVSTATE" "_S" tecuchiy) _.-BVSTATECurrent visibility state: VisibilityState0Enter an option [New/Set/Delete] <New>: _SEnter visibility state name to make current or [?]:Command: nilCommand: _.BSAVECommand:.BSAVEale dale uz mi to neumozni pridat zadnou dasli visibilitu a vyhodi to tento error:Command: (visibility_add)Select point for placing Visibility Set: _.pointCurrent point modes:  PDMODE=0  PDSIZE=0.0000Specify a point: 0,0,0Command: ; error: bad DXF group: (360)V jinych blocich ale v nekterych blocich me to ale to nefunguje vubec (viz error vyse).
kryspin2013-07-18 17:50:40

PepaR
18.07.2013, 20:25
Dobrý den,zkoušel jsem to na CZ verzi AutoCADu 2013 a dostanu se do podobné situace jako Vy. Po zadání (visibility_add) na mě vyskočí chybová hláška:[QUOTE]Příkaz: (visibility_add)Select point for placing Visibility Set: _.pointAktuální režimy bodů:  PDMODE=35  PDSIZE=50.000Určete bod: 0,0,0Příkaz: ; chyba: chybná DXF skupina: (360)[/QUOTE]Nakonec jsem pátral více a dočetl jsem se, že prográmek spolehlivě fungoval až do AutoCADu 2011. Více informací najdete zde a omlouvám se Vám, za poskytnutí plané naděje.

kryspin
23.07.2013, 13:00
Nic se nedeje, stejne jsem rad, ze jsem si to vyzkousel, i kdyz to bylanakonec ztrata casu. Jeste jsem zkusil obejit to pres ten ukazkovy soubor, ve ktrerem jsou visibility jiz nadefinovany a po vlozeni to funguje. Tak ze jsem zkusil tento blok editovat, vlozit tam vlastni kresbu, a pridat ji do nejake visibility a funguje to tak napul. Visibilit tam sice je vic, ale navzajem se ovlivnuji, protoze se mi zrejme nedari vyjmout ostatni prvky...ve verzi 2011 me to jednou sice jakz takz fungovalo, ale pri ulozeni bloku uz neni zobrazeny ani vybratelny, proste se tvari, jako by tam nebyl a jednou mi to uplne shodilo cad... skoda.