Rysowanie prostych elementów na przykładzie symbolu gwintu, wystarczy postępować według poniższej procedury:

 

  Pobierz teraz skrypt LISP: Rysowanie symbolu gwintu

 

Polecenie do uruchomienia skryptu LISP: M8

 

Kod źródłowy z opisem

 

;;; Rysowanie symbolu gwintu
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: M8
;;; Opis: https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/110-1-proste-rysowanie.html
(vl-load-com)
; wczytanie rozszerzenia VisualLISP. Jest to wymagane do programowania obiekowego wystarczy
; wywołać raz na początku programu
(defun C:M8 ()
; Utworzenie funkcji. C: przed nazwą oznacza, że zostaje zdefiniowane polecenie.
; W tym przypadku powoduje, że w ZWCADzie należy wpisać polecenie M8 by uruchomić funkcję
(setq *ZWCAD* (vlax-get-acad-object))
; Pobranie obieku aplikacji
(setq *Rysunek* (vla-get-activedocument *ZWCAD*))
; Pobranie aktualnego rysunku z obiektu aplikacji
(setq *Model* (vla-get-Modelspace *Rysunek*))
; Pobranie przestrzeni modelu z rysunku
(setq Punkt (getpoint "Wskaż punkt"))
; Użytkownik zostanie poproszony o wskazanie punku może go wskazać zarówno przez kliknięcie
; myszką w punkcie, jak i przez wpisanie współrzędnych z klawiatury. Funkcja zwraca listę
; 3-elementową zawierającą wspołrzędne podanego punktu
(setq Punkt (vlax-3d-point Punkt))
; Zamienia listę na obiekt typu Variant. Jest to potrzebne ponieważ funkcje VisualLiSP
; jako parametr wejściowy przyjmują punkt właście zdefiniowany jako variant.
(setq Kolko (vlax-invoke-method *Model* 'AddCircle Punkt 3.4))
; Dodanie okręgu do modelu. Jako parametry funkcji konieczne jest podanie punku środkowego
; (typu variant) i promienia.
(vlax-put-property Kolko 'Lineweight zcLnWt030)
; Ustawienie właściwości Lineweight na 0.30
(setq Luk (vla-AddArc *Model* Punkt 4 0.5 5.4 ))
; Podobnie jak okrąg można dodać też łuk. naeży jako parametry podać punkt środkowy,
; promień, kąt początkowy i końcowy w radianach.
; Warto zapamiętać, że konieczne jest podanie kątów, nie można podać np punktów początku
; i końca, choć oczywiście można napisać własną funkcję która mędzie obliczała kąty
; na podstawie punktów.
(setq L1 (vla-AddLine *Model* (vlax-3d-point (list 0 5 0)) (vlax-3d-point (list 0 -5 0))))
; Analogicznie rysujemy osie otworu podając punty początku i końca
(setq L2 (vla-AddLine *Model* (vlax-3d-point (list -5 0 0)) (vlax-3d-point (list 5 0 0))))
; W tym przykładzie narysowane linie będą przecinały się w początku układu współrzędnych
; a nie w punkcie wskazanym przez Użytkownika
(setq P0 (vlax-3d-point (list 0 0 0)))
; metody obiektu można wywoływać na dwa sposoby dające ten sam efekt
(vla-move L1 P0 Punkt)
; przesunięcie linii z punktu 0,0,0 do punktu wskazanego przez Użytkownika
; lub
(vlax-invoke-method L2 'Move P0 Punkt)
; podobnie własności można ustawiać na dwa sposoby
(vla-put-color L1 30)
; lub
(vlax-put-property L2 'Color 30))

 

Wykonanie w ZWCAD 2023

rysowanie symbolu gwinta

 

Wykonanie w ZWCAD 2015

LISP M8 2015

 

Wykonanie w ZWCAD Classic

LISP M8 Classic