Robert11 Posted September 13, 2024 Report Posted September 13, 2024 Dla mniejszej ilości argumentów plik działa prawidłowo. Nazwy są przypadkowe do celowo mam mieć różne nazwy bloków. Ten fragment pliku lisp powtarza się 30 razy ale nie musi się powtarzać: (setq sset (ssget "x" (list (cons 2 B1)))) (if (= sset nil)(setq l 0)) (setq l (sslength sset)) (setq i 0) (repeat l (setq iBLK (ssname sset i)) (SETQ VALUE (GET-ATT FROMatt iBLK)) (PUT-ATT iBLK TOatt VALUE) (setq i (1+ i)) ) Długość kodu nie ma znaczenia ważne żeby się wykonywał. Ważna informacja na końcu pliku program zwraca błąd że nie może znaleźć właściwego bloku; ten błąd może być. Wcale mi nie przeszkadza, ale nie musi. Ponieważ w docelowym dwg nie zawsze są wszystkie bloki z wymienionej listy. W programie.PRZYKŁADOWY PLIK - Standard.zipPRZYKŁADOWY PLIK.dwg 30 bloków.lsp PRZYKŁADOWY PLIK.dwg PRZYKŁADOWY PLIK - Standard.zip Quote
kojacek Posted September 14, 2024 Report Posted September 14, 2024 Po co kopiujesz ten sam kod 30 razy? Czegoś nie rozumiem? W wątku: masz gotowe działające rozwiąznie dla 30... czy 666 bloków (właściwie dla nieograniczonej ich liczby). W czym tam jest problem? Quote
Robert11 Posted September 14, 2024 Author Report Posted September 14, 2024 Niestety nie potrafię zadekralować argumentów jako listy z której by sobie pobierał dane. Po za tym mój plik przepisuje wartość symbol do wartość lps przykładowo mamy symbol wu1 i lps br1 do w ostatecznym rachunku otrzymujemy symbol wu1 lps wu1. Kopiowałem ten plik 30 razy ponieważ tą metodą dla dwóch zadziała. Jednak dla 30 argumentów wyskakuje mi komunikat za duża ilość argumentów. Muszę się przyznać że jestem nowicjuszem automatyzacj rysowania za pomocą aut lisp 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.