LISP - przesuwający obiekty w osi Z co 1 jednostkę


Recommended Posts

Mam przebieg linii i łuków (jak rozbita polilinia) w ACad i chciałbym teraz wyeksportować niektóre dane do tabeli (długość, promień, zakres kąta) i to jest proste. Ale tez potrzebuję mieć uporządkowaną tabelę z kolejnością odcinków. Pomyślałem, że skoro pracuję na płaskich rysunkach to współrzędna Z będzie pomocna. I teraz jaki LISP mi się marzy:

Po uruchomieniu LISP-a system ustawia licznik na z=1, następnie wykonuje pętlę:

  1. system czeka na wskazanie kolejnego obiektu. Po wskazaniu obiektu system przesuwa go o wektor [0,0,z];
  2. system zwiększa licznik o jeden (z = z+1)
    / koniec iteracji

Zakończenie pętli następuje po naciśnięciu Esc lub określonego klawisza.

Po wykonaniu programu mam przebieg odcinków i łuków ale (o ile starannie klikałem) każdy kolejny jest przesunięty i jedną jednostkę więcej na osi Z.

W tym momencie przechodzę do eksportu danych z wybranych obiektów (funkcja DATAEXTRACTION w ACad), wybieram interesujące mnie pola danych, a między innymi współrzędną Z która staje się dla mnie liczbą porządkową).

W kolejnym etapie można byłoby wrzucić DATAEXTRACTION do LISP-a.

Ktoś pomoże?

Link to comment
Share on other sites

Witam

A może łatwiej by było zamienić ten zestaw linii i łuków w polilinie właśnie i przeprocesować polilinię która już będzie uporządkowana ze swej natury? Kwestia tylko wskazania który koniec jest początkiem. Innym rozwiązaniem mogło by być dodanie XDATA do obiektów linia/łuk ale trzeba do tego też stworzyć system zarządzania kolejnością. Kolejność na podstawie rzędnej Z jak dla mnie wzbudza pewną kontrowersję :)

Link to comment
Share on other sites

Znam metody łączenia w polilinię ale dodam, że składanka na rysunku przedstawia przebieg przenośnika łańcuchowego, który ma też zakręty i podjazdy w pionie, które w miejscu występowania na rysunku nie mają kontynuacji przebiegu, ale są przedstawione jako fragmenty rzutów z innego kierunku.
image.png.beddc47c380bfd1a73aaeb0971c56c09.png

 

Czy jeżeli analizuję polilinię, to system wyrzuci mi długości poszczególnych segmentów, ich promienie i zakresy kątów, czy taka analiza musiałaby być przeprowadzona już w arkuszu kalkulacyjnym? Bo z liniami i łukami nie ma takiego problemu.

Edited by toma1982
Link to comment
Share on other sites

23 godziny temu, perlon napisał:

Każdą osobną polilinię można procesować wskazując w odpowiedniej kolejności chyba że chcesz zagarnąć wszystkie i dostać wynik. To wtedy trzeba by te polilinie ponumerować (XDATA albo atrybuty jakieś w blokach)

 

Aktualnie pracuję na GStarCAD, próbowałem wyeksportować dane polilinii ale dziwna rzecz się dzieje: Polilinia ma 10 wierzchołków i eksportuja sie współrzędne tylko ostatniego wierzchołka. Jeżeli masz okazję sprawdzić DATAEXTRACTION w AutoCad, proszę sprawdź jaka jest zawartość pliku, czy wszystkie wierzchołki są wyciągane do pliku. Ale mimo tego nie widzę, żeby interesujące mnie parametry były wyciągane z polilinii. Kiedy porozbijam PLINE na drobne, mam dostep do interesujących mnie danych bezpośrednio z programu w właściwościach obiektu (długość linii, długość łuku, promień łuku, zakres kąta łuku). W tym kierunku bym poszedł.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...