Vytisknout stránku | Zavřít okno

Přesnost kót

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=7560
Datum vytištění: 12.čer.2026 v 00:36


Téma: Přesnost kót
Odeslal: johny
Předmět: Přesnost kót
Datum odeslání: 14.lis.2008 v 15:40
Zdravim, často řeším, že potřebuju rychle snížit, nebo zvýšit přesnost kóty. Jaksi znám jen dvě cesty jak to udělat na už vytvořenou kótu. První je nepoužitelná (pravé tlacitko mám předefinované na Enter - ale je to rychlé, škoda že ta nabídka nejde vyvolat jinou kombinací kláves, nebo jde?) no a druhá možnost je ve vlasntostech (jenže je to dost nešikovné, páč se to nachází až skoro dole...).
Kolikrát jsem hledal v seznamu standardních příkazů něco jako DimEdit, ale žádnou kompexní editační funkci na kóty jsem nenašel :(
Jsem si ochotný na to udelat lispový prográmek, ale bohužel přesnost kóty jsem nenašel v základní listové definici entity Dimension (ani následných entit-jak je to třeba u bloků) - je to docela komplikovaná definice a bohužel do toho tak nevidím... (jakkoli běžnou entitu, nebo i blok bych si upravit uměl)
Prostě idea je taková, že zadám nějaký zkratkový příkaz např. EK a pak zadám číslo, což bude počet cifer za desetinnou čárkou.  (podobně to mám na tloušku křivky - je to super, tam jsem si bvystačil ale s keditem :)
Předpokládám, že je to mnohem hednodušší ve VBA, ten vša neumím :( Tak nevíte někdo jak lispovsky (nebo nejak) dostat tu aktuální hodnotu z definice a pak to aktualizovat? :) díky.



Odpovědi:
Odeslal: pavelstyl
Datum odeslání: 14.lis.2008 v 15:51
A co třeba toto ?
(defun C:EK (/ ss presnost)
 (setq presnost (getint "\nPocet desetinnych mist: "))
 (setq ss (ssget))
 (command "_dimoverride" "dimdec" (itoa presnost) "" ss "")
 (princ)
)
 
Pavel Štyl


Odeslal: johny
Datum odeslání: 15.lis.2008 v 18:11
Díky, nádhera :) Jeden by si myslel, že už ho ten program nemá čím překvapit a ehle. O této funkci jsem neměl ani tucha.



Odeslal: Ferdinand
Datum odeslání: 19.lis.2008 v 14:23
Paráda. Dal bych tam ještě podmínku, jestli je to entita kóty - takhle to bere cokoli. Bez podmínky na entitu by to šlo i takhle:
(defun C:EK (/ pres1 pres2)
(setq pres1 (getvar "dimdec"))
(setq pres2 (getint (strcat "\nPocet desetinnych mist: " "<" (itoa pres1) ">")))
(if (= pres2 nil)
(progn
(setq pres2 pres1)
(command "_dimoverride" "dimdec" pres2 "" pause)
)
(command "_dimoverride" "dimdec" pres2 "" pause)
)
)


-------------
-FerTh-


Odeslal: johny
Datum odeslání: 19.lis.2008 v 14:36
:) ... já jsem si spíš doplnil aby to fungovalo i na úhlové kóty...

(defun C:NK (/ ss presnost)
 (setq ss (ssget))
 (setq presnost (getint "\nPocet desetinnych mist: "))
 (command "_dimoverride" "dimdec" (itoa presnost) "" ss "")
 (command "_dimoverride" "dimadec" (itoa presnost) "" ss "")
 (princ)
)



Vytisknout stránku | Zavřít okno