Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

|
Odpovědět ![]() |
archiv |
Autor | |
j.ku ![]() Nováček ![]() Přihlášen: 18.úno.2008 Lokalita: ČR (Pha) Používám: AutoCAD Mechanical 2009 + Invertor 2009 Stav: Offline Bodů: 10 |
![]() Zasláno: 18.čer.2008 v 16:07 |
Existuje nějaký inteligentní způsob, jak je možné pomocí příkazu, nebo lispovského prográmku změnit styl písma v daném souboru? Hladiny lze převést pomocí příkazu "_laytrans" Označený kótovací styl "k1_10" lze převést na požadovaný styl "ČEZ-EDU T 2.5-10" s využitím lispu např.: (progn Styl písma naposledy vybrané entity lze změnit např. pomocí: (defun C:Moss ( ) (setq ed (entget (entlast))) ; (1 . "123") (7 . "ISOCP-BPVL") (210 0.0 0.0 1.0) (setq oldtext (assoc 7 ed)) ; (1 . "123") (setq newtext (cons 7 "ISOCP-BPVL")) ; (1 . "Nový text") (setq ed (subst newtext oldtext ed)) ; (Náhrada atomů) (entmod ed) ; (Výměna stylů ) ) Hromadná výměna stylů písma ovšem nefunguje. (defun C:NP-S1 ( ) ; Výměna kótovacích stylů (progn (setq vss (ssget "X" '((7 . "STANDARD")))) ; Vybrány entity se stylem písma "STANDARD" (prompt "Existuje kótovací styl (STANDARD). " ) (setq oldtext (cons 7 "STANDARD")) ; (7 . "STANDARD") (setq newtext (cons 7 "ISOCP-BPVL")) ; (7 . "ISOCP-BPVL") (setq vss (subst newtext oldtext vss)) ; (Náhrada atomů) (entmod vss) ) ) Máte prosím někdo nějaký nápad? Díky. |
|
JKU
|
|
![]() |
|
chlebovsky ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Zasloužilý člen ![]() ![]() Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
![]() |
Ale jo, funguje taky, jen je třeba tu změnu hodit do cyklu.
(setq vss (ssget "X" '((7 . "STANDARD"))))
tímto vytvoříte pouze seznam entit. z toho pak musíte brát položku po položce a měnit.
Mělo by to vypadat nějak takto :
(defun C:NP-S1 (/)
; Hromadná výměna textových stylů ; Nefunguje např. na texty vnořené v blokách (setq vss (ssget "X" '((7 . "STANDARD")))) ; Vybrány entity se stylem písma "STANDARD"
(setq vsl (sslength vss)) ; Zjistí počet entit ve výběrové množině (setq i 0) ; Počítadlo (repeat vsl ; Začátek cyklu (setq ent (entget (ssname vss i))) ; Zjistí informace o i-té entitě (setq oldtext (assoc 7 ent)) ; (7 . "STANDARD") (setq newtext (cons 7 "ISOCP-BPVL")) ; (7 . "ISOCP-BPVL") (setq ent (subst newtext oldtext ent)) ; Náhrada atomů (entmod ent) ; Oorava entity (setq i (1+ i)) ; Navýšení počítadla ) ; Konec cyklu ) při náčítání toho oldtext je lepší to přímo vytáhnout z ent než natvrdo přiřadit, je tady menší ryziko selhání velkých a malých písmen protože ten ssget nebere ohled na malá a velká písmena, furt je to jeden zázev.
A pak v tom (cons 7 "STANDARD") je problém protože toto už zohledňuje velká a malá, proto je lepší to přímo tahat z toho seznamu pomoci (assoc 7 ent)
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
![]() |
|
j.ku ![]() Nováček ![]() Přihlášen: 18.úno.2008 Lokalita: ČR (Pha) Používám: AutoCAD Mechanical 2009 + Invertor 2009 Stav: Offline Bodů: 10 |
![]() |
Díky za doplnění cyklu.
Tušil jsem, že tam asi bude chyba.
I na fóru se mluvilo o tom, že jediná česky psaná učebnice je z minulého století. Vzhledem ke skutečnosti, že je zde jako autor uveden pan Jiří Hlavenka , který prodáním nakladatelství "Computer press" (podle zdrojů z internetu) bude asi za vodou.
.... asi ho už nebude trápit problematika Autolispu .... a případné zdroje informací a tipy bude potřebné hledat někde jinde ....
|
|
JKU
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,574 sekund.