Recommended Posts

Posted

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

Posted

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?

Posted

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 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now