gruzin Opublikowano 6 Października 2013 Zgłoś Opublikowano 6 Października 2013 W Zwcadzie+ 2014 polecenie "style" nie ustawia czcionki Arial (innych TTF chyba też nie). W wersji 2012+ działa poprawnie. (command "_-style" "ARIALnazwa" "Arial" "" "0.8" "" "" "") pozdrawiam
kruszynski Opublikowano 7 Października 2013 Zgłoś Opublikowano 7 Października 2013 Witam Dziękuje za zgłoszenie. Przekażę to do ZWSOFT. Postaram się opracować podobną funkcjonalność z wykorzystaniem modelu obiektowego ZWCADa. Pozdrawiam.
gruzin Opublikowano 7 Października 2013 Autor Zgłoś Opublikowano 7 Października 2013 obiektowo mam zrobiona funkcje do tego ale z koleii nie działa ona poprawnie dla czcionek TTF z Zwcadzie 2012 i niżej ;========================================================================= (defun mh:ACX_MAKE_TextStyle ( STname STfont STheight STwidth STObliqueAngle mode / mh_textstyles newtextstyle) ;tworzy nowy styl textu ;========================================================================= ; mh:ACX_MAKE_TextStyle - tworzy nowy styl textu i zwraca jako VLA-object ;========================================================================= ; (mh:ACX_MAKE_TextStyle "IS_SIMPLEX" "simplex.shx" nil 0.7 nil T) - ok ; (mh:ACX_MAKE_TextStyle "IS_Arial" (strcat (getenv "WINDIR") "\\fonts\\" "Arial.ttf") nil 0.8 nil T) - ok AC, zw DZIWNA CZCIONKA ALE ARIAL, GS przyjmuje ale czcionka to nie arial ;========================================================================= ; STname [string] - nazwa stylu tekstu ; STfont [string] - czcionka stylu tekstu ; STheight [integer / nil] - wysokośc czcionki w stylu tekstu ; STwidth [real / nil] - szerokosc stylu tekstu ; STObliqueAngle [° / nil] - kąt obrotu czcionki w stylu tekstu ; mode [T / nil] - ustawia/NieUstawia stylu jako aktualny ;========================================================================= (setq mh_textstyles (vla-get-textstyles (mh:ACX_ActivDocument))) (if (null (tblsearch "Style" STname)) (progn (setq newtextstyle (vla-add mh_textstyles STname)) (vla-put-fontfile newtextstyle STfont);;;;;;;;;;;;;;;;;;;;;;;; (if STheight (vla-put-Height newtextstyle STheight) ) (if STwidth (vla-put-width newtextstyle STwidth) ) (if STObliqueAngle (vla-put-ObliqueAngle newtextstyle (mh:CON_deg2rad STObliqueAngle nil)) ) (if mode (vla-put-activetextstyle (mh:ACX_ActivDocument) newtextstyle) ) );progn (progn (setq newtextstyle (vla-item mh_textstyles STname)) (if mode (vla-put-activetextstyle (mh:ACX_ActivDocument) newtextstyle) ) ) );if newtextstyle )
kruszynski Opublikowano 7 Października 2013 Zgłoś Opublikowano 7 Października 2013 Ja to zrobiłem trochę inaczej: (vl-load-com) (defun SetFont (NazwaStylu NazwaCzcionki / Styl) ;---------------------------------------------------------- ; funkcja ustawia czcionkę dla wybranego stylu tekstu ; Argumenty: NazwaStylu i NazwaCzcionki jaka ma być nadana. Oba parametry jako String ; Wynik: Objekt wybrany Styl tekstu ;---------------------------------------------------------- ; (SetFont "Standard" "Times New Roman") (setq *StyleTekstu* (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object) ) )) (setq Styl (vla-item *StyleTekstu* NazwaStylu)) (vlax-invoke-method Styl 'SetFont NazwaCzcionki :vlax-false :vlax-false 1 1 ) Styl ) Sprawdziłem na 2012, 2012+ i 2014+ i działa na wszystkich tych wersjach. Dla stabilności działania należałoby jeszcze sprawdzić czy istnieje styl tekstu podany jako parametr, ale to już inna sprawa.
gruzin Opublikowano 7 Października 2013 Autor Zgłoś Opublikowano 7 Października 2013 Coś mi się jeszcze krzaczy, ale prawie działa. Do czego służą dokładnie te dwie jedynki na końcu i :vlax-false oba ? (vlax-invoke-method Styl 'SetFont NazwaCzcionki :vlax-false :vlax-false 1 1 )
kruszynski Opublikowano 7 Października 2013 Zgłoś Opublikowano 7 Października 2013 Pierwszy parametr określa czy czcionka ma być pogrubiona Drugi czy ma być pochylona Trzeci to standard kodowania czyli to co wyświetla się w oknie stylów tekstu jako Język. W samej czcionce można wyszczególnić jakie standardy są przez nią obsługiwane. Ostatni parametr "określa rozmiar i grupę czcionki". Mogę się mylić, ale podejrzewam, że chodzi tu np o to czy znaki w czcionce mają mieć stałą czy zmienną szerokość być może inne parametry również można tu określać, ale nie udało mi się jeszcze odnaleźć bardziej szczegółowego ich opisu.
Rekomendowane odpowiedzi