[Pytanie/pomysł] Wypełnienie obiektu polilinią


Rekomendowane odpowiedzi

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:
QIUTpVy.png
PO:
LsegBg8.png

Edytowane przez endriu66
Odnośnik do komentarza
Udostępnij na innych stronach

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 :)

Odnośnik do komentarza
Udostępnij na innych stronach

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 😉
 

HRS8tlj.png

 

dziękuje bardzo za tak szybki odzew i zaangażowanie w mój pomysł, forum jak i użytkownicy na wysokim poziomie :)

Edytowane przez endriu66
Odnośnik do komentarza
Udostępnij na innych stronach

11 godzin temu, dmatusz3 napisał:

Czyli tak:

  1. Wskazujemy punkt w lewym dolnym rogu.
  2. Wskazujemy wysokość.
  3. Wskazujemy szerokość.
  4. Wprowadzamy x

2021-05-13 20_25_44-Window.png

Obliczamy y według wzorów (poniżej przykład).

2021-05-13 20_29_30-Window.png

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 przez endriu66
Odnośnik do komentarza
Udostępnij na innych stronach

Może coś takiego?

Polecenie "kreski"

rysowanie-kresek.gif

 

;;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

Odnośnik do komentarza
Udostępnij na innych stronach

11 godzin temu, dmatusz3 napisał:

Może coś takiego?

Polecenie "kreski"

rysowanie-kresek.gif

 




;;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 przez endriu66
Odnośnik do komentarza
Udostępnij na innych stronach

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie