endriu66 Opublikowano 11 Maja 2021 Zgłoś Opublikowano 11 Maja 2021 (edytowane) Cześć. Zastanawia mnie od kilku dni pewna sprawa... Czy jest możliwość stworzyć LISP, który automatycznie uzupełni nasz obiekt polilinią (a raczej szykiem polilinii) z uwzględnieniem odstępu od krawędzi obiektu, oraz odstępu między jedną linią a kolejną? Przykładowo: Mam narysowany prostokąt, który chce wypełnić szykiem polilinii z odstępem od krawędzi prostokąta X i odległością Y między jedną polilinią a drugą. PRZED: PO: Edytowane 11 Maja 2021 przez endriu66 Cytuj
dmatusz3 Opublikowano 11 Maja 2021 Zgłoś Opublikowano 11 Maja 2021 Myślę, że można zrobić coś takiego LISPem. Ale być może w wersji 2021 wystarczy skorzystać z szyku dynamicznego. endriu66 1 Cytuj
Martin_S Opublikowano 11 Maja 2021 Zgłoś Opublikowano 11 Maja 2021 Mozna to w 20221 zrobic szykiem j.w., przykład z wiezbą endriu66 1 Cytuj
endriu66 Opublikowano 12 Maja 2021 Autor Zgłoś Opublikowano 12 Maja 2021 (edytowane) 17 godzin temu, dmatusz3 napisał: Myślę, że można zrobić coś takiego LISPem. Ale być może w wersji 2021 wystarczy skorzystać z szyku dynamicznego. Edytowane 12 Maja 2021 przez endriu66 Cytuj
endriu66 Opublikowano 12 Maja 2021 Autor Zgłoś Opublikowano 12 Maja 2021 Znam te opcje. Jednak ustawienie szyku dynamicznego i wartości w nim jest niewiele krótszą opcją od zwykłego szyku (a). Stąd moje pytanie, czy dałoby radę stworzyć lisp, dzięki któremu mógłbym zaznaczyć dany obiekt i wypełnić go poliliną, interesuje mnie również odległości polilinii od górnej i dolnej krawędzi, a nie tylko odstęp między kolumnami. Dzięki Cytuj
dmatusz3 Opublikowano 12 Maja 2021 Zgłoś Opublikowano 12 Maja 2021 Dobrze, postaramy się coś przygotować. Jakie dane mają być wprowadzone? Zakładam, że będzie to: odległości od krawędzi prostokąta (mają być równe?) ilość kresek, odległości pomiędzy kreskami. Czy może są jakieś zależności pomiędzy tymi wymiarami? endriu66 1 Cytuj
endriu66 Opublikowano 12 Maja 2021 Autor Zgłoś Opublikowano 12 Maja 2021 (edytowane) 56 minut temu, dmatusz3 napisał: Dobrze, postaramy się coś przygotować. Jakie dane mają być wprowadzone? Zakładam, że będzie to: odległości od krawędzi prostokąta (mają być równe?) ilość kresek, odległości pomiędzy kreskami. Czy może są jakieś zależności pomiędzy tymi wymiarami? odległości od krawędzi prostokąta (mają być równe?) odległość ma być równa, po bokach (Y z lewej i prawej strony) oraz (X góra/dół) X =\= Y ilość kresek zależna od rozstawu (ma wypełnić cały obiekt z wyśrodkowaniem, czyli żeby z lewej i prawej strony odległość od polilinii do krawędzi była taka sama) odległości pomiędzy kreskami najlepiej wartość do wprowadzenia ręcznie, a standardowo to 150. daje gotowy przykład jak miałoby to wyglądać po skorzystaniu z lipsa 😉 dziękuje bardzo za tak szybki odzew i zaangażowanie w mój pomysł, forum jak i użytkownicy na wysokim poziomie Edytowane 12 Maja 2021 przez endriu66 Cytuj
dmatusz3 Opublikowano 13 Maja 2021 Zgłoś Opublikowano 13 Maja 2021 Czyli tak: Wskazujemy punkt w lewym dolnym rogu. Wskazujemy wysokość. Wskazujemy szerokość. Wprowadzamy x Obliczamy y według wzorów (poniżej przykład). Czy tak to ma wygląać? endriu66 1 Cytuj
endriu66 Opublikowano 14 Maja 2021 Autor Zgłoś Opublikowano 14 Maja 2021 (edytowane) 11 godzin temu, dmatusz3 napisał: Czyli tak: Wskazujemy punkt w lewym dolnym rogu. Wskazujemy wysokość. Wskazujemy szerokość. Wprowadzamy x Obliczamy y według wzorów (poniżej przykład). Czy tak to ma wygląać? Tak, jest w porządku. Lisp napisany w ten sposób mega ułatwi mi pracę, zauważyłem tylko jedno ale. Wzór podany przez Pana jako ilość linii pionowych to w rzeczywistości ilość pul, ale to kwestia podpisana wzoru. Dzięki za odzew. Edytowane 14 Maja 2021 przez endriu66 Cytuj
dmatusz3 Opublikowano 17 Maja 2021 Zgłoś Opublikowano 17 Maja 2021 Może coś takiego? Polecenie "kreski" ;;https://forum.cad.info.pl/topic/3515-pytaniepomys%C5%82-wype%C5%82nienie-obiektu-polilini%C4%85/?tab=comments#comment-19899 (defun c:kreski () (setq p1 (getpoint "\nWskaz lewy dolny rog ")) (setq p2 (getcorner p1 "\nWskaz przeciwlegly naroznik prostokata ") ) (setq odleglosc 150) (setq h1 (+ (cadr p1) 10)) (setq h2 (- (cadr p2) 10)) (setq L (- (car p2) (car p1))) (setq ilosc (fix (/ (- L 30) odleglosc) )) (setq y (/ (- L (* ilosc odleglosc)) 2)) (setq i 0) (repeat (+ ilosc 1) (setq x (+ (* odleglosc i) (+ (car p1) y))) (command "_line" (list x h1) (list x h2) "") (setq i (+ 1 i)) ) (command "_rectangle" p1 p2 "") ) kreski.lsp endriu66 1 Cytuj
endriu66 Opublikowano 18 Maja 2021 Autor Zgłoś Opublikowano 18 Maja 2021 (edytowane) 11 godzin temu, dmatusz3 napisał: Może coś takiego? Polecenie "kreski" ;;https://forum.cad.info.pl/topic/3515-pytaniepomys%C5%82-wype%C5%82nienie-obiektu-polilini%C4%85/?tab=comments#comment-19899 (defun c:kreski () (setq p1 (getpoint "\nWskaz lewy dolny rog ")) (setq p2 (getcorner p1 "\nWskaz przeciwlegly naroznik prostokata ") ) (setq odleglosc 150) (setq h1 (+ (cadr p1) 10)) (setq h2 (- (cadr p2) 10)) (setq L (- (car p2) (car p1))) (setq ilosc (fix (/ (- L 30) odleglosc) )) (setq y (/ (- L (* ilosc odleglosc)) 2)) (setq i 0) (repeat (+ ilosc 1) (setq x (+ (* odleglosc i) (+ (car p1) y))) (command "_line" (list x h1) (list x h2) "") (setq i (+ 1 i)) ) (command "_rectangle" p1 p2 "") ) kreski.lsp 714 B · 0 pobrań Działa nieziemsko, jestem pod wrażeniem. Mam tylko jedną prośbę. W moim wzorze poprosiłem o Y>10, a zależałoby mi finalnie aby Y było >46 (odstęp linii od lewej i prawej strony) Nie potrafię sam edytować Pana lispa. Jeśli uda się to załatwić to jestem dłużnikiem tego forum. Dziękuje!! Edytowane 18 Maja 2021 przez endriu66 Cytuj
endriu66 Opublikowano 18 Maja 2021 Autor Zgłoś Opublikowano 18 Maja 2021 Wartość Y ma być nie mniejsza niż 46, ale jak najbardziej zbliżona do tej liczby. Przepraszam za dobule post ale nie mam możliwości edycji poprzedniego. Cytuj
dmatusz3 Opublikowano 18 Maja 2021 Zgłoś Opublikowano 18 Maja 2021 Tekst skryptu można edytować zwykłym notatnikiem. Te wymiary odpowiadają tym Trzecia oznaczona wartość (30) to 2*15, więc teraz wystarczy to zamienić na 2*46 więc 92. endriu66 1 Cytuj
endriu66 Opublikowano 18 Maja 2021 Autor Zgłoś Opublikowano 18 Maja 2021 Super, dzięki wielkie za zainteresowanie. W zupełności napisany przez Pana lisp ułatwi moją pracę. Cytuj
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.