Przejdź do głównej treści

Rysowanie równoległoboku przez 3 punkty

W przypadku, gdy chcemy narysować prostokąt lub równoległobok ale nierównoległy do osi układu współrzędnych musimy wykonać trzy operacje: narysować prostokąt, obrócić i rozciągnąć.

Dzięki temu skryptowi proces ten staje się znacznie prostszy, wystarczy uruchomić LISP i podać 3 wierzchołki figury.

 

Lisp do rysowania równoległoboku przez podanie trzech punktów

 

Polecenie do uruchomienia skryptu LISP: Rownoleglobok

 

Kod źródłowy z opisem

 

;;; Rysowanie równoległoboku przez wskazanie trzech punktów
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: Rownoleglobok
;;; Opis: https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/120-rysowanie-rownolegloboku-przez-wskazanie-trzech-punktow.html
 (vl-load-com)
(setq *ZWCAD* (vlax-get-acad-object))
(setq *Rysunek* (vla-get-activedocument *ZWCAD*))
(defun C:rownoleglobok ( / )
;----------------------------------------------------------
;Funkcja pozwala na rysowanie rąbu przez wskazanie trzech punktów
;Argumenty: brak
;Wynik: brak
;----------------------------------------------------------
(setq *Model* (vla-get-Modelspace *Rysunek*))
(setq P1 (getpoint "Wskaż pierwszy narożnik")) ; współrzędne 3D
(setq P2 (getpoint P1 "Wskaż drugi narożnik"))
(setq P3 (getpoint P1 "Wskaż trzeci narożnik"))
(setq P4 (list (+ (car P3) (-(car P2)(car P1)) )
(+ (cadr P3) (-(cadr P2)(cadr P1))))) ; Współrzędne 2D
(setq P1 (trans P1 1 0 ) ; konwersja ze współrzędnych lokalnych na globalne
P2 (trans P2 1 0 )
P3 (trans P3 1 0 )
P4 (trans P4 1 0 )) ; prosze zauważyć.że konwersję współrzędnych można
; dokonać również dla punktów 2D
(setq LPts (list (car P1)(cadr P1)
(car P2)(cadr P2)
(car P4)(cadr P4)
(car P3)(cadr P3) ) )
(setq Vpts (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble (cons 0 (1- (length Lpts)))) Lpts ) ))
(setq RabObj(vlax-invoke-method *Model* 'addlightweightpolyline Vpts))
(vlax-put-property RabObj 'Closed :vlax-true )
)

 

Wykonanie w ZWCAD 2023

rownoleglobok przez 3 boki

 

Wykonanie w ZWCAD 2015

LISP Rownoleglobok 2015

 

Wykonanie w ZWCAD Classic

LISP Rownoleglobok Classic

Lista tagów: LISP Przykłady LISP

// ZWCAD: dymki słownika – szerokość 500 px i przeliczenie rozmiaru po wczytaniu obrazka (bez paska przewijania) jQuery(function ($) { if (!$.tooltipster) return; // obrazek w dymku wczytuje się po otwarciu – wtedy dymek trzeba zmierzyć jeszcze raz $.tooltipster.on('ready', function (e) { var instance = e.instance; $(e.tooltip).find('img').each(function () { if (!this.complete) { $(this).one('load', function () { instance.reposition(); }); } }); }); // SEO Glossary ustawia maxWidth: 400 – zmieniamy na 500 po jego inicjalizacji setTimeout(function () { $('.tooltipstered').each(function () { try { $(this).tooltipster('option', 'maxWidth', 500); } catch (err) {} }); }, 0); });