Zobrazit plnou verzi příspěvku: LISP

Radim Cech
06.01.2005, 08:24
Mám starší LISP pro otáčení značek o 200g a potřebuji jej upravit pro otáčení textů z důvodu otáčení o jiný bod, než je v tomto okamžiku. U textu je to bod CENTER. Může mi někdo poradit, jak LISP upravit?
Díky
(defun C:Rot200T (/ Ent)  (setq Ent (car (entsel "\n Ukaz text: ")))  (command "_rotate" Ent ""           "_non" (trans (cdr (assoc 10 (entget Ent))) 0 1)           200  )  (princ))
;(c:rot200T)
 

Seiner
06.01.2005, 09:40
Jak spočítat obecně Center bod textu nevím. Věděl bych jen, jak otáčet text kolem jeho refbodu:
(defun C:Rot (/ E Ent P1)  (setq E (entsel "\n Ukaz text: " ))  (setq Ent (car E))  (Setq P1 (cadr E))  (command "_rotate" Ent ""              "_ins" P1           200  )  (princ))

vknop
06.01.2005, 19:59
ad "Center bod textu"
přes textbox nebo změnit zarovnání na _mc, otočit kolem _ins a obnovit zarovnání

Seiner
07.01.2005, 08:15
Pres text box by to mělo jít. Pravý horní roh textboxu pro nenatočený text by se získal nějak jako :(Setq P2 (nth 1(textbox (list (assoc 1 ent))))). Pak by se muselo vždy zjistit, jak je text otočený (assoc 50 ent) a v jakém zarovnání je vložen. (Jaký je to kód?) Z toho by se spočítal center bod textu a kolem něj by se točilo. Trošku pracné - momentálně na to nemám čas. Pro každý možný způsob zarovnání by byl jiný výpočet středu otáčení.
Druhý návrh nevím jak prakticky provést. Zaprvé nevím, jak v lispu změnit způsob zarovnání a zadruhé by to bylo dost pracné při snaze o univerzálnost. Stejně by se totiž musely vypočítávat zarovnávací body.
Protože se ale pan Čech neozval, jestli ho první odpověď někam zavedla, myslím, že bude lepší počkat.

vknop
07.01.2005, 09:46
Zarovnání textu je ve skup. kódech 72 a 73. Přes entmod by to neměl být problém.

Seiner
07.01.2005, 09:59
Diky. Prakticky jsem to nezkoušel, ale ta změna zarovnání, pokud by měla fungovat ve všech variantách, není IMHO triviální. K domněnce mne vede chování textu, pokud změním vlastnost zarovnání v panelu vlastnosti. Třeba když změním z normálního zarovníní na LDR na Centr, tak mi text skočí středem na vkládací bod, místo aby se vkládací bod přesunul na střed stávajícího textu. Pokud změním zarovnání z Mezi na Střed, tak se mi ztratí koncové body textu. To by se všechno muselo nějak obhospodařit. Proto píšu, že se do toho nemá cenu pouštět, pokud neznáme účel toho všeho. 

vknop
07.01.2005, 10:19
Taky díky. Beru zpět. Zaměřil jsem se na otočení a to "odskočení" textu mi uniklo:-( Takže "textbox"...