You are on page 1of 3

(defun c:vktr3d ()

;(alert "��������� ��������� �������� � ����������


������������")

; (setvar "angdir" 0) ; �������� �� ������������� �


��������� ����� �������
(setq prov (tblsearch "BLOCK" "STRELA"))
(if (= prov nil)
(progn
(command "_layer" "_m" "0" "")
(command "_color" "_byblock")
(command "_zoom" "_a")
(command "_pline" "_non" "0.5,-0.1" "_w"
"0.0" "0.0" "_non" "3.0,-0.1"
"_non" "2.7,-0.4" "_non" "5.0,0.0"
"_non" "2.7,0.4" "_non" "3.0,0.1"
"_non" "0.5,0.1" "_c" ""
)
(setq strlk (entlast))
(command "_color" "_bylayer")
(command "_block" "strela" "_non" "0,0,0" strlk "")
)
)

(command "_layer" "_m" "vektor3d" "_c" "_w" "vektor3d" "")

(setq mb (getreal "\n Yazi olcegi : ")


d1 (/ 5.5 mb)
d2 (- 0.0 d1)
mbstr (/ 1.0 mb)
mbtxt (/ 2.5 mb)
kod (getstring "\n kaciklik yonu X veya Y : ")
kod (strcase kod)
kod2 (getint "\n ���������� ������ �� ������ 1 ��� 2 : ")
)
(if (= kod2 2)
(progn (setq h (getreal "\n �������� �� ������ : ")
ph (list 0.0 0.0 h)
)
)
)
(setq dopusk (getreal "\n kaciklik birimi mm: "))
(while t
(setq p1 (getpoint "\n Birinci noktayi sec"))
(if (= kod2 2)
(progn (setq p2 (getpoint "\n ikinci noktayi sec"))
(if (< (last p2) (last p1))
(progn (setq p4 p1
p1 p2
p2 p4
)
)
)
)
)
(setq p3 (getpoint "\n Proje noktasi"))
; (print p3)
(setq dp1 (mapcar '- p1 p3))
(if (= kod2 2)
(setq dp2 (mapcar '- p2 p3))
)
(setq pstr p3
dp dp1
k 1
)

(repeat kod2

(if (= k 2)
(progn (setq pstr (mapcar '+ p3 ph)
dp dp2
)
)
)

(if (/= kod1 "Y")


(progn
(setq dx (car dp)
txt (rtos (* (abs dx) 1000) 2 0)
rottxt "0"
)
(if (>= dx 0)
(progn (setq tipvst "_ml"
pvst (mapcar '+ pstr (list d1 0.0 0.0))
rotstr "0"
)
)
)
(if (< dx 0)
(progn (setq tipvst "_mr"
pvst (mapcar '+ pstr (list d2 0.0 0.0))
rotstr "180"
)
)
)
(cond ((= k 1) (command "_color" "_g"))
((= k 2) (command "_color" "_b"))
)
(command "_insert" "strela" "_non" pstr mbstr mbstr rotstr)
(if (> (* (abs dx) 1000) dopusk)
(command "_color" "_r")
)
(command "_text" "_j" tipvst "_non" pvst mbtxt rottxt txt)
)
)
(if (/= kod1 "X")
(progn
(setq dy (cadr dp)
txt (rtos (* (abs dy) 1000) 2 0)
rottxt "90"
)
(if (>= dy 0)
(progn (setq tipvst "_ml"
pvst (mapcar '+ pstr (list 0.0 d1 0.0))
rotstr "90"
)
)
)
(if (< dy 0)
(progn (setq tipvst "_mr"
pvst (mapcar '+ pstr (list 0.0 d2 0.0))
rotstr "270"
)
)
)
(cond ((= k 1) (command "_color" "_g"))
((= k 2) (command "_color" "_b"))
)
(command "_insert" "strela" "_non" pstr mbstr mbstr rotstr)
(if (> (* (abs dy) 1000) dopusk)
(command "_color" "_r")
)
(command "_text" "_j" tipvst "_non" pvst mbtxt rottxt txt)
)
)

(setq k (+ 1 k))
)
)
)

You might also like