ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Již 10.000+ CAD tipů. Přes 118.500 registrovaných u nás, celkem 1.095.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor. Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Katalog CAD bloků
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoVyskova kota (GGmenu)

 Odpovědět Odpovědět Stránka  12> archiv
Autor
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Téma: Vyskova kota (GGmenu)
    Zasláno: 22.říj.2011 v 07:53
Dobry den,

chcem sa vas opytat, ci by mi niekto z vas vedel pomoct s naprogramovanim lispu, ktory by vkladal blok s hodnotami ako je uvedene na prilozenom obrazku. Mam na mysli ten cerveny.

Cize dany text by vyjadroval vlastne hodnotu y pred lomitkom a hodnotu x za lomitkom.


Klasicka vyskova kota (na obr. v lavo) sa da vlozit pomocou GGmenu prikazom VKS ktory vklada blok 'Kota_vysky_R_GG.dwg'.

Kedze ide o nieco podobne, mozno by stacilo len mierne poupravit uz existujuci script GGmenu, a vytvorit novy jednoduchy blok aby bol dosiahnuty cerveny vysledok z obrazku.

To vsak uz sam nedokazem, preto vas ziadam o pomoc.

Dakujem za tipy.



Připojené náhledyPřihlaste se pro zobrazení plné verze - 20111022_075238_kota.JPG







Upravil DodoSVK - 22.říj.2011 v 07:58
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21916
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2011 v 08:49
Na běžnou "kačenu" není třeba nic programovat. Ani na takovouto výškovou kótu. Viz dynamický blok "Dodo":
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
PepaR Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 29.lis.2004
Lokalita: ČR (ZL)
Používám:
ruky a hlavu (občas ;)
Stav: Offline
Bodů: 6206
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2011 v 10:27
Dobrý den,

součástí GGmenu a i samostatných výškových kót je nejen statická, ale i dynamická výšková kóta. Blok této výškové kóty stačí poupravit, případně se můžete inspirovat textovým polem, které automaticky odečítá výšku a vložit jej do bloku vlastního (viz Váš obrázek). Dynamická kačena má ale i své nevýhody, které jsou blíže popsány v dokumentaci pro výškové kóty (viz odkaz výše) nebo v sérii článků AutoCAD ve stavební praxi, 6.díl na autodeskclubu.

Pokud byste si chtěl upravit lisp a přitom zachovat příkaz výškových kót z GGmenu, tak jej zduplikujte a přejmenujte si v lispu spouštěcí příkazy na jiné názvy. Pak si upravte blok, případně dodejte vlastní, a v lispu nahraďte název používaného bloku za ten Váš.
Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 14:28
Dakujem obom za tipy.

Nakolko vsak potrenujem, aby kota bola staticka, pouzitie textovych poli pre mna nieje vhodne.

Musim sa teda vybrat upravou bloku Kota_vysky_R_GG a nasledne upravou lispu kotvysk.lsp



Viem teda ze je nutne  vytvorit novy blok s nazvom napr.  Kota_vysky_R_GG_Y/X s potrebnym obsahom, a  v kotvysk.lsp doplnit o novy odsek s (defun C:YX .... ktory by riadil atributy v novoytvorenom bloku, cim by som dosiahol moj ciel.

Chapem to zatial spravne? pomaly sa do toho dostavam, no zatial neviem presne ocom pisem :) je to premna vsetko nove.

Ked som vsak otvoril zdrojovy kod lispu, ktory treba poupravit, zatocila sa mi hlava :) je to premna zatial bohuzial este poriadny gulas.

Vedel by mi niekto este pomoct s vytvorenim noveho bloku a upravou lispu? bol by som velmi vdacny, snazim sa postupne vsetko naucit aj sam, no toto by sa mi zislo skor mat hotove ako som schopny sa to naucit, preto ak by to niekto vedel spravit rychlo, popripade zislo by sa to aj jemu, bol by som velmi vdacny za pomoc.


Upravil DodoSVK - 23.říj.2011 v 14:29
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 16:46
Utilita kotvysk.lsp neni tak slozita, ale obsahuje nekolikrat velmi podobnou utilitu lisici se jen v detailu. Finalni verze obsahuje dva popisy - cesky a anglicky v zavislosti na konfiguraci v zahlavi. Je v ni osetreno docela mnoho ruznych moznosti kde muze vzniknout chyba a to asi potrebovat nebudete. Take pracuje s dynamickym blokem, coz je trochu slozitejsi nez blok jednoduchy a to predpokladam Vy nepotrebujete. I kdyz pokud nebudete potrebovat aktualizace, tak to je stejne.
Utilitu by bylo asi lepsi zkusit napsat od zacatku. Nevim jak moc komplikovane by to bylo, ale asi moc ne. Kliknete do bodu, nactete souradnice, zformatujete si popis a vlozite blok. Pokud nebudete chtit aktualizovat pri zmene, ale pouze vkladat nove bloky do mista kam kliknete, tak to neni tak slozite. Take je dulezite zda nebudete chtit vkladat automaticky napriklad podle krivky.
Zkuste se do toho pustit, pokud narazite na konkretni problem, zkuste dotaz upresnit.

Blok si vytvorte novy a dejte prosim hlavne jiny nazev nez je u kotvyk.lsp aby se to nejak nepletlo - hlavně aktualizace vyskovych kot. Pokud utilitu kotvysk pouzivate, tak by jste si pripravil komplikace hlavne Vy. Nevim jestli budete potrebovat jeden nebo dva atributy.


Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 18:51
Mozno sa opytam hlupost ale predpokladam ze niekde v tomto retazci sa zistuje vyska ktora sa nakoniec objavi ako hodnota atributu vkladaneho bloku vyskovej koty.

Ak by som chcel aby retazec zistil nie vysku (y suradnicu), ale x-ovu suradnicu, co je nutne zmenit?
Predpokladam ze to staci pozmenit minimalne. Ide mi hlavne o to miesto v retazci, kde lisp kaze nacitat tu ypsilonovu suradnicu...

dakujem za radu a usmernenie....


(defun zjisti_vysku (ko nasobitel prefix / k y HODNOTA_KOTY format_cisla format_koty olddimzin2)
      ;nasobitel:
      ;    - pro mm nasobitel=1000; pro
      ;    - pro m nasobitel=1; pro
  (setq y (cdr (assoc 10 (entget ko)))) ;nacte do y hodnotu bodu
  (setq y (trans y 0 1)) ; prevede z globalniho do aktualniho USS
  (setq y (cadr y))
  (if (< (abs y) 1e-011)(setq y 0)) ; melo by korigovat nepresnosti AutoCadu
 
  (setq HODNOTA_KOTY (/ y nasobitel))
  ;(setq y (/ (cadr (cdr (assoc 10 (entget ko)))) 1000)) ; zakomentovany puvodni prikaz

  (setq format_koty (getvar "DIMLUNIT"))
  (setq format_cisla 2)
  (cond
    ((= format_koty 1) (setq format_cisla 1))  ;Scientific
    ((= format_koty 2) (setq format_cisla 2))  ;Decimal
    ((= format_koty 3) (setq format_cisla 3))  ; Engineering (feet and decimal inches)
    ((= format_koty 4) (setq format_cisla 4))  ; Architectural (feet and fractional inches)
    ((= format_koty 5) (setq format_cisla 5))  ;Fractional
    ((= format_koty 6) (setq format_cisla 2))  ;Decimal
  ) ; cond

  (if (and (= 1 (getvar "INSUNITS" )) (= 4 (getvar "DIMLUNIT")))
    (progn
      (setq olddimzin2 (getvar "dimzin"))
      (setvar "dimzin" 1)
    )
  )
 
  (cond
    ((> y 0) (setq text (strcat prefix (rtos HODNOTA_KOTY format_cisla (getvar "LUPREC")))))
    ((= y 0) (setq text (strcat "%%P" (rtos 0.0 format_cisla (getvar "LUPREC")))))
    ((< y 0) (setq text (rtos HODNOTA_KOTY format_cisla (getvar "LUPREC"))))
  ) ; cond

  (setq k (entnext ko))
  (setq k (entget k))
  (setq k (subst (cons '1 (vl-string-subst "," "." text)) (assoc 1 k) k))
  (entmod k)
  (entupd ko)

  (if olddimzin2 (progn (setvar "dimzin" olddimzin2)(setq olddimzin2 nil)))
  (princ)
) ; defun

Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 19:22
V radku:
(setq y (cdr (assoc 10 (entget ko)))) ;nacte do y hodnotu bodu 



se nacita vlastnost vkladaciho bodu bloku.

(assoc 10 (entget ko))

vrati vlastnost ve formatu LIST - neco jako
(10 X-souradnice Y-souradnice Z-souradnice)

funkci (nth) nactete n-tou hodnotu z listu. Lze pouzit i funkce (car) (cadr), ale ty z hlavy nevim
Nemam moznost to ted vyzkouset, ale zkuste:

(setq y (nth (assoc 10 (entget ko)) 1))


nazornejsi by bylo nazvat promennou "X", ale to by jste musel upravit i zbytek funkce





Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 19:38
vdaka za tip, no bud som spravil chybu ja alebo to nieje dobre

vymenil som

(setq y (cdr (assoc 10 (entget ko))))

za

(setq y (nth (assoc 10 (entget ko)) 1))


ale nefunguje to. Blok sa vlozi s vychodzou hodnotou atributu, a v prikazovom riadku sa napise:

Ukažte bod umístění kóty :
"nesprávný typ argumentu: consp 1"


Upravil DodoSVK - 23.říj.2011 v 19:52
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 20:10
Hmm, smula.
Ouch
Bez vyzkouseni to bude slozitejsi. Kouknete do napovedy na funkci (nth)
Nejlepsi je spistit si VisualLisp (prikaz VLIDE (_VLIDE) ) a tam mate jak pristupnou napovedu, tak konzoli na zkouseni prikazu, moznost debugovat a koukat se na hodnoty promennych za behu programu (nastroj kukatko).

U funkce (nth) si nejsem si jist s poradim parametru. Bud je:

(nth poradi list)
nebo
(nth list poradi)

Pokud jsem to prevratil tak by bylo spravne
(setq y (nth 1 (assoc 10 (entget ko))))


Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 20:45
v napovede sa pise ze sprane je to takto
(nth n lst)

ked som zadal

(setq y (nth 1 (assoc 10 (entget ko))))

tak to nefungovalo tiez ale chybove hlasenie bolo uz ine.

Ukažte bod umístění kóty :
"nesprávný typ argumentu: 2D/3D bod: 6560.7"

hodnota 6560.7 bola skutocne X suradnica, ale nezapisalo ju do hodnoty atributu. Zrejme treba poupravit koli zmene ktoru som urobil este neaku inu cast scriptu, aby to cele prebehlo bez chyboveho hlasenia. Je to tak?

ci ani (setq y (nth 1 (assoc 10 (entget ko)))) nie je spravne kedze to nefunguje a zmenu treba hladat stale v tomto kratkom retazci?


Upravil DodoSVK - 23.říj.2011 v 21:02
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 21:01
A co vlastne potrebujete? Potrebujete jen vkladat ty bloky dle kliknuti?
A nebo potrebujete take pozdejsi aktualizaci? Potrebujete vkladat blok v zavislosti na meritku kotovaciho stylu a s formatem dle nastaveni jednotek (metry, mm, palce?

Pokud tohle vsechno nepotrebujete tak je lepsi napsat trivialni novou utilitu. Ta bude velice prehledna. Pokud zacnete upravovat se slozitejsi utilitou, jako  je na vkladani vyskovych kot, tak jen promazani zbytecnych radku Vam zabere mnohem vice casu!
Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 21:11
No, je pravda ze zrejme je jednoduhsie napisat novu utilitu, no priznam sa ze Autolisp som dnes otvoril prvy krat v zivote, takze aj trivialna vec je premna problem.


V uz existujucom scripte mam aspon ako taku sancu sa zorientovat a upravit ju, lebo kedysi davno som skusal programovat v inom programovacom jazyku, tak aspon to mi pomoha...


Dosiahnut chcem toto:

chem vkladat bloky len podla kliknutia, a najlepsie by bolo keby boli rovno v tvare ako som ukazoval v obrazku pri otvoreni temy.

neskorsiu aktualizaciu nepotrebujem, respektive sa jej chcem vyhnut, co sa pouzitim POLI  neda.

Je dolezite premna aby atributy mali hodnoty podla mojho USS, nie podla globalneho.

Tiez by bola fajn ta zavislost na meritku kotovacieho stylu.  
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 21:47
Zkuste tohle:

blok:

Připojené souborydwguploads/20111023_214400_stanic-XY.dwg


LISP

Připojené souboryLSPuploads/20111023_214455_stanic-XY.LSP



To meritko podle kot to neumi.

PS. Zkuste ten VisualLisp - pokud jste uz programoval, tak to hodne pomuze. Je to prijemne prostredi se syntaxi, debugerem, ... , proste vsim co pro vyvoj ve VisualLispu potrebujete.



Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 21:56
Zapomnel jsem, ze pri uploadu na server CadForum se prejmenuji soubory.

Takze jeste dodam, ze blok se musi jmenovat "stanic-XY" a utilita se spousti "stanic-XY"

Zpět nahoru
Martin Bielina Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.led.2007
Lokalita: ČR (Pha)
Používám:
AutoCAD True view 2016
Stav: Offline
Bodů: 100
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 22:09

Doplnění předchozího příspěvku - odpověď na otázku co je nutné změnit

změnit je nutné původní (řádek č.7):
(setq y (cadr y))

na nové
(setq y (car y))

Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 22:46
Původně odeslal(a) Martin Bielina Martin Bielina napsal(a):

Doplnění předchozího příspěvku - odpověď na otázku co je nutné změnit

změnit je nutné původní (řádek č.7):
(setq y (cadr y))

na nové
(setq y (car y))




skusil som to este upravit podla toho co pisete vyssie, ale nepomohlo...stale to iste chybove hlasenie Ouch  aj tak vdaka.
Zpět nahoru
DodoSVK Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 13.říj.2007
Lokalita: Slovensko
Používám:
MAP 3D
Stav: Offline
Bodů: 184
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 22:51
Původně odeslal(a) alfred alfred napsal(a):

Zapomnel jsem, ze pri uploadu na server CadForum se prejmenuji soubory.

Takze jeste dodam, ze blok se musi jmenovat "stanic-XY" a utilita se spousti "stanic-XY"




dakujem velmi pekne, vpodstate toto som chcel dosiahnut tazke mi to velmi pomoze.

Akurat neviem preco ked dany blok vkladam tak sa mi vypnu vsetky uchopy ktore mam prednastavene a zakazdym si musim zvolit nanovo neaky, co je dost neprakticke Cry

a este koty X-ove by som chcel mat v absolutnej hodnote, tzn. 234.12/5.55 a nie 234.12/-5.55

inak je to uz takmer dokonale Clap dobra praca
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 23.říj.2011 v 23:11
Původně odeslal(a) DodoSVK DodoSVK napsal(a):



Akurat neviem preco ked dany blok vkladam tak sa mi vypnu vsetky uchopy ktore mam prednastavene a zakazdym si musim zvolit nanovo neaky, co je dost neprakticke Cry

a este koty X-ove by som chcel mat v absolutnej hodnote, tzn. 234.12/5.55 a nie 234.12/-5.55

inak je to uz takmer dokonale Clap dobra praca



Vypnuti uchopu byla chyba. Posilam opravu.

Připojené souboryLSPuploads/20111023_230831_stanic-XY.LSP


Pokud potrebujete absolutni hodnotu x tak si za
  (setq x (nth 0 point))
pridente radek:
  (setq x (abs x))

Ale zda se mi to divne.  Nevim co to ma delat, ale predpokladam, ze se jedna o staniceni a pokud jste v zaporne oblasti, tak to ma psat zaporna cisla, ne?








Upravil alfred - 23.říj.2011 v 23:11
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 1896:VIPJak vytvořit víceřádkový kótovací text?
Tip 1879:VIPJak otočit kóty výkresu?
Tip 14050:VIPJak v detailu výkresu okótovat průměr nebo poloměr k neviditelné ose?
Tip 6075:Železobeton, násypy, prejzy a další šrafovací vzory pro AutoCAD.
Tip 510:Jak nastavit v AutoCADu desetinnou tečku, resp. čárku?
Tip 12985:Jak přepnout typ zobrazení parametrických kót v náčrtu Inventoru?


 Odpovědět Odpovědět Stránka  12> archiv

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,441 sekund.