 - ;同时标注管径和管长的程序
- ;*****************参数初始化**********************
- (vl-load-com)
- (terpri)
- (prompt "程序初始化......")
- (terpri)
- (setq bl (if(setq bl (getreal "输入出图比例1:[1/2/5/10/20/50/100/1000]<1>:")) bl 1.0));出图比例为1/bl
- (setq gao (* bl 3.0));根据比例计算字高。
- (setq tg (strcat "标注文字高度<" (rtos gao) ">:"))
- (setq gao (if(setq xxx (getreal tg)) xxx gao));改变字高。
- (setq xiaoshu (getint "请输入精度位数[整数(0)/1位(1)/2位(2)]<1>: "))
- (if (= xiaoshu nil) (setq xiaoshu 1))
- ;;;启动时在命令行要显示的内容
- (terpri)
- (prompt "管长管经标注程序加栽完毕,启动命令GDBZ")
- ;*************初始化完毕********************
- (defun c:GDBZ (/ jl pt1 pt2 x1 y1 z1 x2 y2 z2 ts ag wz du dnwz lwz dnin dnout jlout ob e ee)
- (setq ob (ssget '((0 . "line"))))
- ;;;(setq ob (ssget ))
- (setq dn (if(> dn 0) dn 800))
- (setq ts (strcat "输入管径<" (itoa dn) ">:"));将"输入管径<默认管径>:"负值给ts
- (setq dn (if(setq dnin (getint ts)) dnin dn));输入新的管径,回车取默认值(即上次运行的值)
-
- (repeat (setq ee(sslength ob))
- (setq e(ssname ob (1- ee)))
- (setq pt1 (vlax-curve-getstartpoint e)
- pt2 (vlax-curve-getendpoint e)
- )
- (setq x1 (car pt1))
- (setq y1 (cadr pt1))
- (setq z1 (caddr pt1))
- (setq x2 (car pt2))
- (setq y2 (cadr pt2))
- (setq z2 (caddr pt2))
- (if
- (< x2 x1)
- (setq pt1 (list x2 y2 z2)
- pt2 (list x1 y1 z1))
-
- )
-
- (setq ag (angle pt1 pt2));计算管线的斜率
- (setq jl (distance pt1 pt2));计算管线的长度
- ;(setq jl (atof (rtos jl 2 xiaoshu)));管线的长度的小数位数
- (setq dimzv(getvar 'dimzin))
- (setvar 'dimzin 0)
- (setq dnout (strcat "DN" (itoa dn ) " L(m)=" (rtos (/ jl 1000.0) 2 xiaoshu)));dnout为输出管径,管道长度的字符串
- (setvar 'dimzin dimzv)
- (setq wz (- (/ jl 2) (/ (+ (strlen dnout) (* 2 gao)) 2) ))
- (setq wz (polar pt1 ag wz));wz为管线的中点
-
- (setq ag (if(and (> ag (/ pi 2)) (< ag (* pi 1.5))) (- ag pi) ag));将ag调整到0~pi
-
- (setq dnwz (polar wz (+ ag (/ pi 2)) (* 1.5 bl)));dnwz为管径标注的位置
-
-
- (setq du (/ (* ag 180.0) pi));将管线斜率ag转换为度,负给du
- (setq wdpt1 (polar wz 2.356 100))
- (setq wdpt2 (polar wz -0.785 100));wdpt1,wdpt2为放大标注位置矩形对角两点
- (command "zoom" wdpt1 wdpt2)
- ;(command "text" dnwz du gao dnout);输出管径
- (command "_.text" dnwz gao dnout);输出管径
- (setq ee(1- ee))
- )
- (command "zoom" "previous")
- (princ);静默退出
- )
|