?? zym.lsp
字號:
(defun c:zym ()
(setq x1 nil
y1 nil
hi nil
h nil
cxj nil
jhj nil
i nil
k nil
fn nil
filename nil
l nil
JA nil
OK nil
) ;_ 結束setq
(setq p1 nil
p2 nil
p3 nil
p4 nil
point nil
point1 nil
D nil
n nil
m nil
z nil
y nil
) ;_ 結束setq
(setq OK 1)
(setq filename (getfiled "存儲數據文件" "" "dat" 1))
(if (= nil filename)
(exit)
)
(while (= nil hi)
(setq hi (getreal "\n請輸入水位改正常數:"))
) ;_ 結束while
(while (= nil D)
(setq D (getreal "\n請輸入水深文本注記的高度:"))
) ;_ 結束while
(while (= nil JA)
(setq JA (getangle "\n請輸入水深文本注記的傾斜角度:"))
) ;_ 結束while
(while (= nil l)
(setq l
(getint
"\n請選擇成圖環境 [1]CASS3.0; [2]CASS3.0轉CASS4.0; [3]CASS4.0:"
) ;_ 結束getint
) ;_ 結束setq
) ;_ 結束while
(cond ((= l 1)
(setq l 8)
)
((= l 2)
(setq l 11)
)
((= l 3)
(setq l 10)
)
)
(setq La (* (* D 1) (sin JA)))
(setq Lb (* (* D 1) (cos JA)))
(setq L1a (* (* D 2.8) (sin JA)))
(setq L1b (* (* D 2.8) (cos JA)))
(setq L2a (* (* D 1.2) (sin JA)))
(setq L2b (* (* D 1.2) (cos JA)))
(setq L3a (* (* D 2.2) (sin JA)))
(setq L3b (* (* D 2.2) (cos JA)))
(setq fn (open filename "w"))
(setq cxj (ssget
(list (cons 8 "GCD") (cons 0 "INSERT"))
) ;_ 結束ssget
) ;_ 結束setq
(prompt "請稍后,正在進行數據轉換.......\n")
(setq n (sslength cxj))
(cond ((/= n 0)
((setq m (rtos n 2 0))
(write-line m fn)
(setq i 1)
(while (<= i n)
(setq point (ssname cxj k))
(setq point (entget point))
(setq point (nth l point))
(setq i1 (rtos i 2 0))
(setq x1 (nth 1 point))
(setq y1 (nth 2 point))
(setq xa (+ x1 La))
(setq ya (+ y1 Lb))
(setq xb (- xa L1b))
(setq yb (+ ya L1a))
(setq xc (- xb L2a))
(setq yc (- yb L2b))
(setq xd (- x1 (- L2a La)))
(setq yd (- y1 (- L2b Lb)))
(setq p1 (list xa ya))
(setq p2 (list xb yb))
(setq p3 (list xc yc))
(setq p4 (list xd yd))
(setq p (list p1 p2 p3 p4))
(setq jhj (ssget "Wp"
p
(list (cons 8 "GCD") (cons 0 "TEXT"))
) ;_ 結束ssget
) ;_ 結束setq
(setq z (sslength jhj))
(cond ((/= z 0)
((setq point (ssname jhj 0))
(setq point (entget point))
(setq point (cdr (assoc 1 point)))
))
(setq xb (+ xa L3b))
(setq yb (- ya L3a))
(setq xc (- xb L2a))
(setq yc (- yb L2b))
(setq p2 (list xb yb))
(setq p3 (list xc yc))
(setq p (list p1 p2 p3 p4))
(setq jhj (ssget "Wp"
P
(list (cons 8 "GCD") (cons 0 "TEXT"))
) ;_ 結束ssget
) ;_ 結束setq
(setq y (sslength jhj))
(cond ((/= y 0)
(setq point1 (ssname jhj 0))
(setq point1 (entget point1))
(setq point1 (cdr (assoc 1 point1)))
)
(if (or (= 0 z) (= 0 y))
(setq OK O)
)
(setq h (strcat point "." point1 "00"))
(setq h (distof h 2))
(setq h (+ hi h))
(setq h (rtos h 2 3))
(setq x1 (rtos x1))
(setq y1 (rtos y1))
(setq jhj (strcat i1 ",," x1 "," y1 "," h))
(write-line jhj fn)
)
(setq i (+ i 1))
)) ;_ 結束while
)
(close fn)
(setq x1 nil
y1 nil
hi nil
h nil
cxj nil
jhj nil
i nil
k nil
fn nil
filename nil
l nil
) ;_ 結束setq
(setq p1 nil
p2 nil
point nil
point1 nil
D nil
JA nil
) ;_ 結束setq
(cond ((= OK 1)
(prompt "\n數據轉換成功!")
)
((= OK 0)
(prompt "\n數據轉換完畢,但存在錯誤轉換不完全!")
)
)
(setq OK nil)
(princ)
) ;_ 結束defun
;*** 請不要在注釋下添加文字! ***|;
)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -