日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LISP标注路线桩号_CAD插件标桩号的AutoLISP程序语言求解释并译成中文,谢谢

發(fā)布時間:2024/9/19 编程问答 207 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LISP标注路线桩号_CAD插件标桩号的AutoLISP程序语言求解释并译成中文,谢谢 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

標(biāo)樁號:

(setq dq 0.0)

(setq wf 1.0)

(setq fx 1.0)

(setq th 3.0)

(setq zk 0.7)

(setq dist 50.0)

(setq qszh 0)

(setq lorr 0)

(setq lor "l")

(defun c:bzh ()

(setvar "cmdecho" 0)

(VL-LOAD-COM)

(princ "\n\n\n\n 使用前請預(yù)先設(shè)置好圖層、顏色、字體等作圖環(huán)境;所標(biāo)注的須為一條直線或多段線 ")

(setq en (car (entsel "\n選擇標(biāo)注曲線:")))

(while (= nil en)

(setq en (car (entsel "\n選擇標(biāo)注曲線:")))

)

(setq lor (getstring "\n\n\n\n\n [樁號標(biāo)在道路前進方向[左(l)/右(r)]側(cè):"))

(if (= lor "l")

(setq lorr 1)

(setq lorr 0)

)

(setq qd (getpoint "\n選取起始點:"))

(while (not (vlax-curve-getDistAtPoint en qd))

(setq qd (getpoint "\n\n\n沒有選在標(biāo)注曲線上,重新選擇:"))

)

(if (= nil (setq qszh (getreal "\n起點樁號<0>(m):"))) (setq qszh 0))

(princ "\n\n\n\n 正在進行標(biāo)注,請稍候... ")

(princ)

(setq qszh (- qszh (* (vlax-curve-getDistAtPoint en qd) fx)))

(setq pzh (fix(/ qszh dist)))

(setq pzh (- qszh (* pzh dist)))

(if (= fx 1.0)

(setq pt1 (vlax-curve-getStartPoint en))

(setq pt1 (vlax-curve-getEndPoint en))

)

(if (= fx 1.0)

(setq zhz 0)

(setq zhz (vlax-curve-getDistAtPoint en (vlax-curve-getEndPoint en)))

)

(setq zhz (+ zhz (* qszh fx)))

(setq zhz (* zhz fx))

(xrbz)

(setq nn 0)

(while

(setq pt1 (vlax-curve-getPointAtDist en (abs(- (* nn (* dist fx)) pzh))))

(setq zhz (* nn (* dist fx)))

(setq zhz (+ zhz (- qszh pzh)))

(xrbz)

(setq nn (1+ nn))

)

(if (= fx 1.0)

(setq pt1 (vlax-curve-getEndPoint en))

(setq pt1 (vlax-curve-getStartPoint en))

)

(if (= fx 1.0)

(setq zhz (vlax-curve-getDistAtPoint en (vlax-curve-getEndPoint en)))

(setq zhz 0)

)

(setq zhz (+ zhz (* qszh fx)))

(setq zhz (* zhz fx))

(xrbz1)

(princ "\n\n\n\n 道路樁號標(biāo)注完畢---中國燃氣 ")

(princ)

)

(defun xrbz(/)

(if (< zhz 0.0) (setq fh "-") (setq fh "+"))

(setq nn1 (fix (/ zhz 1000.0)))

(setq nn2 (abs(- zhz (* 1000.0 nn1))))

(setq nn3 (fix (/ zhz 50.0)))

(if (= nn2 0.0) (setq str_1 (strcat fh "000" )))

(if (and (> nn2 0) (< nn2 10.0)) (setq str_1 (strcat (strcat fh "00" ) (rtos nn2 2 0))))

(if (and (> nn2 10.0) (< nn2 100.0)) (setq str_1 (strcat (strcat fh "0" ) (rtos nn2 2 0))))

(if (>= nn2 100.0) (setq str_1 (strcat fh (rtos nn2 2 0))))

(setq str_1 (strcat (rtos nn1 2 0) str_1 ))

(setq str_2 (strcat (strcat "G" fh ) (rtos nn3 2 0)))

(setq ang (a-get-Angle en pt1))

(setq ang (+ (* lorr pi) ang))

;(setq pt2 (polar pt1 (+ ang (/ pi 2)) (* th 0.5)))

(setq pt2 pt1)

(setq pt3 (polar pt1 (+ ang (* pi 1.5)) 18))

(setq pt4 (polar pt1 (+ (* pi 1.5) ang) 12))

(setq pt5 (polar pt4 ang 2.5))

(setq pt4 (polar pt4 (+ pi ang) 2.5))

;(if (= wf 1.0)

(setq ang2 (angtos (angle pt3 pt2)0 4) )

(setq ang3 (angtos (angle pt2 pt3)0 4) )

;)

(setq sa (getvar "osmode"))

(setvar "osmode" 0)

(command "line" pt3 pt2 "")

(if (> (car pt3) (car pt2))

(progn

(command "text" "m" pt4 th ang3 str_1 )

(command "text" "m" pt5 th ang3 str_2 );位置,高度,角度,內(nèi)容

)

)

(if (< (car pt3) (car pt2))

(progn

(command "text" "m" pt5 th ang2 str_1 )

(command "text" "m" pt4 th ang2 str_2 );位置,高度,角度,內(nèi)容

)

)

(if (= (car pt3) (car pt2))

(progn

(if (< (cadr pt3) (cadr pt2))

(progn

(command "text" "m" pt5 th ang2 str_1 )

(command "text" "m" pt4 th ang2 str_2 );位置,高度,角度,內(nèi)容

)

(progn

(command "text" "m" pt4 th ang3 str_1 )

(command "text" "m" pt5 th ang3 str_2 );位置,高度,角度,內(nèi)容

)

)

)

)

(setvar "osmode" sa)

)

(defun xrbz1(/)

(if (< zhz 0.0) (setq fh "-") (setq fh "+"))

(setq nn1 (fix (/ zhz 1000.0)))

(setq nn2 (abs(- zhz (* 1000.0 nn1))))

(setq nn3 (fix (/ zhz 50.0)))

(if (= nn2 0.0) (setq str_1 (strcat fh "000" )))

(if (and (> nn2 0) (< nn2 10.0)) (setq str_1 (strcat (strcat fh "00" ) (rtos nn2 2 0))))

(if (and (> nn2 10.0) (< nn2 100.0)) (setq str_1 (strcat (strcat fh "0" ) (rtos nn2 2 0))))

(if (>= nn2 100.0) (setq str_1 (strcat fh (rtos nn2 2 0))))

(setq str_1 (strcat (rtos nn1 2 0) str_1 ))

(setq str_2 (strcat(strcat (strcat "G" fh ) (rtos nn3 2 0)) "-1"))

(setq ang (a-get-Angle en pt1))

(setq ang (+ (* lorr pi) ang))

;(setq pt2 (polar pt1 (+ ang (/ pi 2)) (* th 0.5)))

(setq pt2 pt1)

(setq pt3 (polar pt1 (+ ang (* pi 1.5)) 18))

(setq pt4 (polar pt1 (+ (* pi 1.5) ang) 12))

(setq pt5 (polar pt4 ang 2.5))

(setq pt4 (polar pt4 (+ pi ang) 2.5))

;(if (= wf 1.0)

(setq ang2 (angtos (angle pt3 pt2)0 4) )

(setq ang3 (angtos (angle pt2 pt3)0 4) )

;)

(setq sa (getvar "osmode"))

(setvar "osmode" 0)

(command "line" pt3 pt2 "")

(if (> (car pt3) (car pt2))

(progn

(command "text" "m" pt4 th ang3 str_1 )

(command "text" "m" pt5 th ang3 str_2 );位置,高度,角度,內(nèi)容

)

)

(if (< (car pt3) (car pt2))

(progn

(command "text" "m" pt5 th ang2 str_1 )

(command "text" "m" pt4 th ang2 str_2 );位置,高度,角度,內(nèi)容

)

)

(if (= (car pt3) (car pt2))

(progn

(if (< (cadr pt3) (cadr pt2))

(progn

(command "text" "m" pt5 th ang2 str_1 )

(command "text" "m" pt4 th ang2 str_2 );位置,高度,角度,內(nèi)容

)

(progn

(command "text" "m" pt4 th ang3 str_1 )

(command "text" "m" pt5 th ang3 str_2 );位置,高度,角度,內(nèi)容

)

)

)

)

(setvar "osmode" sa)

)

(defun a-get-Angle(ename point / p1 v1 pt-ang)

(setq v1 (vlax-curve-getfirstderiv ename (vlax-curve-getparamatpoint ename point))

p1 (mapcar *+ point v1)

pt-ang (angle point p1))

pt-ang

)

總結(jié)

以上是生活随笔為你收集整理的LISP标注路线桩号_CAD插件标桩号的AutoLISP程序语言求解释并译成中文,谢谢的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。