zwonko

Użytkownik forum
  • Postów

    59
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    4

Treść opublikowana przez zwonko

  1. Aktualnie znalazłem jeszcze taki, zanim @kruszynski podesłal swój kod (którego nie testowałem). Ten poniżej, działa na wybrane bloki, niestety nie działa na zagnieżdzone. ;ColourByLayer.lsp (vl-load-com) (defun C:CBL ( / *error* c_doc cme c_blks ss b_name b_lst) (defun *error* ( msg ) (if cme (setvar 'cmdecho cme)) (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc)) (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred."))) (princ) );_end_*error*_defun (setq c_doc (vla-get-activedocument (vlax-get-acad-object)) c_blks (vla-get-blocks c_doc) );_end_setq (cond ( (/= (getvar 'cmdecho) 0) (setq cme (getvar 'cmdecho)) (setvar 'cmdecho 0))) (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc)) (vla-startundomark c_doc) (setq ss (ssget ":L" '((0 . "INSERT")))) (vlax-for blk (vla-get-activeselectionset c_doc) (setq b_name (vlax-get-property blk (if (vlax-property-available-p blk 'effectivename) 'effectivename 'name))) (cond ( (not (vl-position b_name b_lst)) (vlax-for obj (vla-item c_blks b_name) (cond ( (= (vlax-get-property obj 'objectname) "AcDbHatch") (vlax-put-property obj 'color acbylayer)) (t (vlax-put-property obj 'color acbylayer)) );end_cond );end_for (setq b_lst (cons b_name b_lst)) ) );end_cond (vla-update blk) );end_for (vla-regen c_doc acAllViewports) (if (and c_doc (= 8 (logand 8 (getvar 'UNDOCTL)))) (vla-endundomark c_doc)) (if cme (setvar 'cmdecho cme)) (princ) );_end_defun
  2. Ja, praktycznie zawsze potrzebuje żeby wewnątrz bloku były elementy na 0 i Bylayer. Dany blok na jednym rysunku jest widoczny, na innej jest niewidoczny, a na innej jest w ogóle przekrojem. Mamy zatem 3 warstwy, których używamy w róznych miejscach na tym samym bloku.
  3. Znalazłem coś co prawie robi to co chciałem: (defun c:c252 ( / doc ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for blk (vla-get-blocks doc) (if (= :vlax-false (vla-get-isxref blk)) (vlax-for obj blk (vl-catch-all-apply 'vla-put-color (list obj acbylayer))) ) ) (vla-regen doc acallviewports) (princ) ) (vl-load-com) (princ) Z tym, że działa to na cały rysunek a chciałbym żeby działał tylko na zaznaczone bloki....
  4. W autocadzie istnieję bardzo przydatna funkcja setbylayer, która ustawia właściwości zaznaczonych elementów na "ByLayer". Co ważne działa również wewnątrz bloków. Niesety brakuje jej w ZWCAD. Szukałem jakiś lispów zastępczych nawet na tym forum, ale albo nie działają wcale, albo nie działają na bloki. Ktoś ma może lispa co może zastąpić tą funkcję?
  5. Łatwiej to obejść po prostu odbijając jest z powrotem, przesuwając odnośnik (blok) i grot. Nie mniej jednak, to jakaś głupia niekompatybilność, pewnie coś prostego. A niestety zdarza się współpraca AC+ZW i wtedy nie wszyscy widzą rysunek tak samo.
  6. A propos tabel to mam problem z formułami/kalkuacjami w ZWCAD 2021 VERNUM = "2021.03.25(63304)_x64" (read only). Po ustawieniu styli tabeli, pól "data" na dwa miejsca po przecinku, decimal, program mimo tego w komórkach podaje z dokładnością do wielu miejsc. Obejściem jest wstawienie w komórce, pola (field) z formułą obliczeniową (object/formula) i tam ustawienie precyzji pola na decimal 0.00. Niestety skutkuje to tym, że w autocadzie w tych miejscach wyświetla się #### (czyli pole się wysypuje). Po otwarciu w Autocad dana komórka ma formułe typu =A4/B4 \f "%lu2%pr2 (czyli kalkulacja + formatowanie pola). Pomaga przeklikanie formuł w Autocad i usunięcie formatowania (\f "%lu2%pr2). Po otwarciu w ZWCAD jest wyświetlane prawidłowo. Natomiast w momencie ponownej edycji w ZWCAD danej formuły wracamy do błędu z #### w Autocad.
  7. Mam problem z odbitymi mleader'ami z blockiem. W ZWCAD VERNUM=2021.01.15(62054)_x64 Wyświetlają się w nieprawidłowy sposób, tj. odbity jest text, numerek. Mirrtext=0. W programie Autocad wyświetla się prawidłowo. Załączam screeny oraz plik. odbity_mleader.dwg
  8. Wystarczy wspomóc się odpowiednim lispem. Na necie tego mnóstwo :) Polecę te dwa: http://www.lee-mac.com/areastofield.html http://www.lee-mac.com/matchfieldformatting.html