|
AutoCAD... AutoLISP... VisualLISP... |
|
[28] Status XREF-a |
|
W AutoCAD-zie można dołączyć osobny plik *.dwg do bieżącego rysunku jako element (rysunek) wskazywany przez odniesienie (ZODN - Zewnętrzny ODNośnik / XREF - eXternal REFerence). Odnośniki są swego rodzaju blokami. Przy wykorzystaniu odnośników zewnętrznych wszelkie zmiany w dołączonym rysunku są widoczne w rysunku bieżącym. Wstawione odnośniki są dołączane, ale nie wstawiane, do rysunków. XREF-y mogą mieć szerokie zastosowanie w pracy grupowej, i/lub w przypadku wykonywania dokumentów branżowych. Technika ta pozwala też, tworzyć rysunki o znacznie większych rozmiarach, przy mniej znaczącym spadku wydajności. Dla programów lispowych operujących na odnośnikach zewnętrzych, dla wielu zadań, ważnym jest sprawdzenie jego statusu. Taki problem został zasygnalizowany na www.cad.pl - Jak odczytać status XREFa?. Ponieważ dołączone XREF-y są traktowane tak jak bloki, należy "zbadać" listę kodów DXF, takiego odnośnika, ze szcególnym naciskiem na wartość kodu 70. Poniżej funkcja realizująca to zadanie. Argumentem funkcji jest nazwa odnośnika. |
;;; =================================================================;;; ;;; zwraca status XREF-a ;;; ;;; =================================================================;;; (defun jk:BLK_XRefStat (Name / Data Obj Res) (if (setq Obj (tblobjname "BLOCK" Name)) (progn (setq Data (entget Obj)) (if (= (logand (setq Res (cdr (assoc 70 Data))) 4) 4) Res Nil ) ) Nil ) ) |
|
Funkcja może zwrócić NIL lub liczbę (INT), która to liczba jest większa lub równa 4. Wartość NIL w (dwóch przypadkach) oznacza:
nie ma bloku (podanego jako argument funkcji NAME) lub istniejący blok NAME nie jest XREF-em. Zwrócona liczba INT może być równa 4 (można zastosować ReLoad) lub większa od 4 (np. 36) i wtedy można zastosować UnLoad.
|
|
|
|
|
|