Zobrazit plnou verzi příspěvku: Automatické výškové koty

zisoun
25.04.2007, 13:29
Pro zájemce jsem vytvořil nástrojový panel pro vkládání výškových kot. Panel se načte jednoduše pomocí příkazu čtimenu. Samozřejmě je potřeba přidat cestu k adresáři podpůrných souborů.Nejsem si jistý,ale bude to asi fungovat pouze v ACADLT, protože jsem se dočetl, že plný CAD nepodporuje v DIESELU příkazy setenv, getenv atd.Po načtení stačí zvolit bod na základně (=0,000) a pak se vkládají koty tak dlouho, dokud to neukončím ESC.  Mělo by to fungovat jak ve vodorovném tak i ve svislém směru. Velikost šipky a textu jsem zadal podle proměnné DIMSCALE (tzn. =50 pro 1:50 atd.). Vložil jsem v obou směrech jen jeden blok koty, ale je dynamický, tzn. že kota se dá otáčet podle potřeby nalevo, napravo, nahoru, dolů.  Stejně tak i text  se  dá přehodit nahoru nebo dolů. A navíc je možno dodatečně dopsat po hodnotu koty např. popis podlaží. Kdo má zájem, může vyzkoušet. Pokud by se vyskytly nějaké chyby nebo to vůbec nešlo, prosím o info a pokusím se o nápravu. uploads/20070425_131339_VKOTY.zip

PepaR
25.04.2007, 19:36
Nu, takže jsme se rohodl testnout Vaše menu, protože jsme se kdysi taky pokoušel výškové kóty udělat dynamické, ale nakonec jsme od toho upustil.
 
Při testech na ACAD 2006 se mi při definování základny vypíše což bude problém, který jste jiža si popsal výše:
[QUOTE]Příkaz: _menuecho
 
Zadejte novou hodnotu pro MENUECHO <0>: 0
 
Příkaz: _idUrčete bod:  X = 490.28     Y = 0.00     Z = 0.00
 
Příkaz: _setenv Neznámý příkaz "SETENV".  Stiskněte F1 pro nápovědu.
 
Příkaz: ZAKLADNA Neznámý příkaz "ZAKLADNA".  Stiskněte F1 pro nápovědu.[/QUOTE]
 
Dále jsem nějak nepobral označení Výšková svislá a Výšková vodorovná, když oba bloky jsou pro kóty výškové, jen jedna je jinak natočená? Nebo jak bych to řekl, napadá mě jen jediné použití a to např. pro kótování sklopených řezů. Přijde mi to jako zbytečné zabírání ikonky, ale na druhou stranu to ulehčí práci, že blok nemusím natáčet, což bylo asi původním záměrem.
 
 
Při přečtení tématu, jsem nabyl dojmu, že atribut máte vyplněn polem a výška se při posunu sama aktualizuje, ale nebylo tomu tak, takže mě to trošku zmátlo. Něco podobného jsme zkoušel, ale zlobily mě atributy.
 
Jinak dynamičnost jako např. překlápění máte hezky a přehledně uděláno.PepaR2007-04-25 19:37:10

zisoun
25.04.2007, 20:14
Bohužel tohle jsem předpokládal. Je to tím, že plný ACAD nezná tyto příkazy SETENV a GETENV. Tudíž to bude fungovat jen v ACADLT. Nemám přístup na žádný ACAD,takže jsem to nemohl vyzkoušet a zaroveň ani udělat tak, aby to fungovalo i v plném autocadu.Svislá i vodorovná jsou stejné, jen otočené o 90 st. právě kvůli sklopeným řezům. O zabírání ikonou bych nemluvil, pravě proto, že je dynamická a tudíž mi stačí v každém směru jedna. Hodnota atributu není pole, ale je to rozdíl Y-ové souřadnice dané koty a Y-ové souř. základny (to stejné platí i pro x-ovou), proto je možné si volit základnu kdekoliv. Mám dojem, že to máte stejně řešené ve vašem GGmenu. Problém je, že je to v Lispu a ten LT nepodporuje, proto jsem to musel definovat v DIESELu. Pokud máte možnost to zkusit v LT, budu rád. Mě to funguje, jen bych chtěl vědět, jestli to půjde i jinde.Vadí mi tam trochu jen jedna věc. Hodnota se zobrazuje s desetinnou tečkou a nemůžu přijít, jak tam dostat desetinnou čárku, pokud to vůbec jde. Proměnná DIMDSEP to neřeší.

PepaR
25.04.2007, 21:26
Na DIESEL je  a byl na tomto fóru mistrem Alfred, zkuste s ejj na tu desetinnou tečku poptat.

Pepa
15.05.2007, 06:19
Dovolil jsem si do souboru MNU "sáhnout", aby to fungovalo i v "plném" CADu (zkoušeno v A2007), tady je upravený soubor:***MENUGROUP=VKOTY***TOOLBARS**TB_VKOTYTB_VYSKOVE_KOTY  [_Toolbar("VKOTY", _Floating, _Show, 60, 110, 1)]ID_TVK0       [_Button("Základna", "vk0.bmp", "vk0.bmp")]^C^C_id;\_setvar USERS1 $M=$(getvar,lastpoint);ID_TVK1       [_Button("Výšková svislá", "vk1.bmp", "vk1.bmp")]*^C^C_id \_setvar;USERR2;$M=$(*,0.001,$(-,$(index,1,$(getvar,lastpoint)),$(index,1,$(getvar,USERS1))));_attreq;1;attdia;0;_-insert;kaceny/VK1a;$M=$(rtos,$(index,0,$(getvar,lastpoint)),2,3),$M=$(rtos,$(index,1,$(getvar,lastpoint)),2,3),0;$(getvar,dimscale);$(getvar,dimscale);0;"$M=$(if,$(=,$(getvar,USERR2),0),%%p0.000,$(if,$(>,$(getvar,USERR2),0),+$(rtos,$(getvar,USERR2),2,3),$(rtos,$(getvar,USERR2),2,3)))";ID_TVK2       [_Button("Výšková vodorovná", "vk2.bmp", "vk2.bmp")]*^C^C_id \_setvar;USERR2;$M=$(*,0.001,$(-,$(index,0,$(getvar,USERS1)),$(index,0,$(getvar,lastpoint))));_attreq;1;attdia;0;_-insert;kaceny/VK2a;$M=$(rtos,$(index,0,$(getvar,lastpoint)),2,3),$M=$(rtos,$(index,1,$(getvar,lastpoint)),2,3),0;$(getvar,dimscale);$(getvar,dimscale);0;"$M=$(if,$(=,$(getvar,USERR2),0),%%p0.000,$(if,$(>,$(getvar,USERR2),0),+$(rtos,$(getvar,USERR2),2,3),$(rtos,$(getvar,USERR2),2,3)))";Ještě bych se zeptal, zda se Vám v LT také ořezávají koncové nuly, např. -1,0? Nemám teď čas s tím zápasit, ale určitě je rychlejší do kačeny jednu či dvě nuly dopsat, než vzdálenosti odměřovat

zisoun
15.05.2007, 08:57
Co se týká ořezávání nul. Odškrtnul jsem v kotovacím stylu u primárních jednotek potlačování koncových nul, přičemž ještě musí být v tom stejném dialogu nastaveno přesnost na 0 aby se naopak nezobrazovaly nuly u kot. Pak se to zobrazuje v pořádku. Soubor .mnu vyzkouším později.

Pepa
15.05.2007, 09:40
máte pravdu, teď to funguje jak má

zisoun
15.05.2007, 13:41
Tak mě ta vaše verze zase nefunguje v LT. Vám to funguje v LT? Nezná to proměnnou USERS1. Našel jsem si, že je možný použít proměnné USERI1-5 pro celá čísla a USERR1-5 pro reálná čísla. Zkusil jsem USERS1 změnit na USERR1 (samozřejmě všude) a pak mi sice příkaz celý proběhl,ale neaktualizovala se hodnota.Pořád mi to píše +-0,000. Nevím proč,ale nechce mi to přiřadit správnou hodnotu k proměnné USERR2. Pořád je 0 a proto mi to píše hodnotu v kote 0,000.

Pepa
15.05.2007, 14:37
Nefunguje :-( Obávám, že pro "velký" cad a LT je třeba mít dvě verze, protože LT USERS nezná a mám pocit, že uživatelské proměnné (vaše ZAKLADNA a ROZDIL) do "velkého" nedostanu, protože ten nezná SETENV.. Leda celé makro nějak přetvořit, aby stačilo využít USERR. Ale teď se k tomu nedostanu..

zisoun
15.05.2007, 15:47
Dospěl jsem ke stejnému závěru,ale až budu mít čas, pokusim se to udělat s pomocí proměnných USERR.

zisoun
17.05.2007, 00:30
Tak už myslim,že by to mohlo fungovat v obou verzích. Vynechal jsem už
vodorovnou kotu a nechal jen klasické svislé, ale doplnil jsem to ještě
o možnost aktualizace koty při jejím posunu, kdy se nejdříve klikne na
její nové umístění a pak na atribut koty.
uploads/20070517_002944_VKOTY.zip

Pepa
17.05.2007, 08:23
funguje i ve "velkém" CADu