Assgarth Posted April 16, 2012 Report Posted April 16, 2012 Witam, zauważyłem problem z użyciem funkcji vl-remove, przy wykorzystaniu usuwania punktów identycznych, za pomocą rekurencji. Dla przykładu, w załączniku podaję listę 444 punktów. Po usunięciu identycznych, ma zostać 156 punktów. Funkcja (_DelDup1 lista) zadziała prawidłowo (na czystym rysunku DWG); Funkcja (_DelDup2 lista), całkowicie zamyka ZwCAD bez komunikatów błędów itp. Obie funkcje działają prawidłowo w innych systemach CAD, z czego _DelDup2 jest w swym działaniu, zdecydowanie szybsza od _DelDup1. Funkcje (zamieszczone również w załączonym pliku): ;------------ (defun _DelDup2 (Lst) (if Lst (cons (car Lst) (_DelDup2 (vl-remove (car Lst) (cdr Lst))) ) ) ) ;------------ (defun _DelDup1 (l / % nl) (foreach % l (if (not (member % nl)) (setq nl (cons % nl))) ) (reverse nl) ) lst.zip Quote
kruszynski Posted April 16, 2012 Report Posted April 16, 2012 Sprawdziłem Pańskie zgłoszenie. Rzeczywiście w aktualnej wersji działa jak Pan opisuje. Dobra wiadomość jest taka, że w nowej wersji problem został rozwiązany Quote
Assgarth Posted April 16, 2012 Author Report Posted April 16, 2012 Okey. Zatem czekamy na nową wersję ;) Tak z ciekawości jeszcze zapytam: - czy do obecnej wersji 2011.10.30(17176) przewiduje się jakiekolwiek poprawki? pozdrawiam Quote
kruszynski Posted April 16, 2012 Report Posted April 16, 2012 Prawdopodobnie będą jakieś poprawki, ale nie mogę tego zagwarantować Quote
dmatusz3 Posted April 16, 2012 Report Posted April 16, 2012 Aktualizacja do nowej wersji będzie darmowa dla posiadaczy 2012. Ewentualne poprawki do starej wersji pojawią się po publikacji oficjalnej wersji nowego ZWCAD 2012 (lipiec/sierpień 2012). Pozdrawiam Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.