 - ;wxq 2013 12 29
- ;批量选择横断面,提取各断面地面高程 工作图形为公路横断面图
- (defun c:qaz (/ BIAO CD DDGS FILE_ID I J JL JLY NAME NAME1 PT PT1 PT2 SS1 SSS SSTWG TEXT TW WT XRZ ZBB ZCD ZH)
- (alert "选择要出数据的横断面图元")
- (setq sss (ssget '((0 . "TEXT") (8 . "shuju")))) ;框选所有横断面桩号
- (vl-load-com)
- (setq i 0
- biao nil
- jl 2
- j 1
- TW nil
- zbb nil
- ss1 nil
- zh nil
- sstwg nil
- ) ;jl为框选半径
- (repeat (sslength sss)
- (setq name (ssname sss i))
- (setq text (cdr (assoc 1 (entget name))))
- (if (vl-string-position (ascii "K") text)
- (setq biao (append (list name) biao))
- )
- (setq i (1+ i))
- )
- (princ (strcat "\n共有横断面" (itoa (length biao)) "个"))
- (princ) ;----------------------------------------------------------------------------------------------
- (foreach name biao ;程序遍历每个横断面
- (setq zh (cdr (assoc 1 (entget name)))) ;本横断面桩号
- (setq pt (cdr (assoc 11 (entget name)))) ;取桩号文字处的坐标
- ;找本桩横断面的多线(地面线)。
- (while j
- (setq pt1 (list (- (car pt) jl) (- (cadr pt) jl) 0))
- (setq pt2 (list (+ (car pt) jl) (+ (cadr pt) jl) 0))
- (setq ss1 (ssget "C" pt1 pt2 '((0 . "POLYLINE") (8 . "dmx"))))
- ;选择各个地面高程多段线
- (if (= (sslength ss1) 1)
- (setq j nil) ;跳出循环
- (setq jl (1+ jl)) ;扩大寻找范围
- )
- )
- (princ);找到每个横断面的设计高程填挖高。
- (setq j 1
- jl 1.75
- jly 4.4
- )
- (setq pt1 (list (- (car pt) jl) (- (cadr pt) jly) 0))
- (setq pt2 (list (+ (car pt) jl) (+ (cadr pt) jly) 0))
- (setq sstwg (ssget "C" pt1 pt2 '((0 . "TEXT") (8 . "shuju")))) ;选择填挖高文字
- (setq i 0)
- (repeat (sslength sstwg)
- (setq name1 (ssname sstwg i))
- (setq text (cdr (assoc 1 (entget name1))))
- (if (vl-string-position (ascii "Wz=") text);如果字符串中含有Wz字样,锁定为填挖高字符。
- (setq tw text)
- )
- (setq i (1+ i))
- )
- (if (/= nil (vl-string-search "Ht" tw))
- (setq WT -1)
- (setq wt 1)
- ) ;判断是填还是挖
- (setq zcd (strlen tw)) ;求字串长度
- (setq cd (vl-string-search " Wz=" tw)) ;求Wz字样的起始长度位置
- (setq tw (substr tw 4 (- cd 3)))
- (setq zbb (vlax-get (vlax-ename->vla-object (ssname ss1 0)) "coordinates" ));获取多线顶点坐标表
- (setq ddgs (length zbb)) ;输出文件
- (setq file_id (open "e:/设计图纸原地面数据.txt" "a"))
- (setq xrz (list zh tw ddgs))
- (print xrz file_id)
- );----------------------------------------------------------------------------------------
- (princ)
- )
|