- UID
- 21907
- 积分
- 235
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-12-25
- 最后登录
- 1970-1-1
|
发表于 2006-6-21 23:01:26
|
显示全部楼层
我自已编写了一个小程序
;;;输出图形中所有904层的点实体的X Y Z值
(DEFUN C:TXTOUT (/ SS1 %REP %ID #TEMP $F1 $X $Y $Z $XYZ)
(SETVAR "dimzin" 0)
(SETQ %ID 0)
(SETQ SS1 (SSGET '((0 . "POINT") (8 . "904"))))
(SETQ %REP (SSLENGTH SS1))
(SETQ $F1 (OPEN "D:\\高程点坐标文件.DAT" "w"))
(WRITE-LINE "\"X\",\"Y\",\"Z\(Elevation\)\"" $F1)
(REPEAT %REP
(SETQ E-NAME1 (SSNAME SS1 %ID))
(SETQ #TEMP (ENTGET E-NAME1))
(SETQ #P1 (CDR (ASSOC 10 #TEMP)))
(SETQ $X (RTOS (CAR #P1) 2 3))
(SETQ $Y (RTOS (CADR #P1) 2 3))
(SETQ $Z (RTOS (CADDR #P1) 2 3))
(SETQ $XYZ (STRCAT $X "," $Y "," $Z))
(WRITE-LINE $XYZ $F1)
(SETQ %ID (+ 1 %ID))
) ;_ 结束REPEAT
(CLOSE $F1)
) ;_ 结束DEFUN
;;;==========================
生成的文件格式像这样,前面要流水号的话将程序做点小小的修改就行了
"X","Y","Z(Elevation)"
598261.359,23002.586,626.976
598268.453,23008.933,626.970
598252.727,23024.332,627.092
598254.899,23011.063,626.940
598263.298,23020.481,626.897
598279.989,23004.071,626.933
598342.020,23015.032,637.945
598376.059,23012.260,649.845
598368.164,23028.532,650.288
598344.125,23069.910,659.133
598359.770,23070.004,664.660
改了一下程序,输出的结果像这样
"X","Y","Z(Elevation)"
1,29245.438,14162.236,518.951
2,29315.550,14143.703,517.456
3,29263.699,14173.036,517.068
4,29263.815,14171.403,517.027
5,29262.909,14171.240,517.042
6,29315.776,14141.273,518.003
7,29278.984,14171.540,516.734
8,29312.726,14116.615,517.992
9,29278.824,14167.933,516.706
10,29283.836,14161.279,516.644
11,29311.550,14116.040,518.086
;;;输出图形中所有904层的点实体的X Y Z值
(DEFUN C:TXTOUT (/ SS1 %REP %ID #TEMP $F1 $X $Y $Z $XYZ)
(SETVAR "dimzin" 0)
(SETQ %ID 0)
(SETQ SS1 (SSGET '((0 . "POINT") (8 . "904"))))
(SETQ %REP (SSLENGTH SS1))
(SETQ $F1 (OPEN "D:\\高程点坐标文件.DAT" "w"))
(WRITE-LINE "\"X\",\"Y\",\"Z\(Elevation\)\"" $F1)
(REPEAT %REP
(SETQ E-NAME1 (SSNAME SS1 %ID))
(SETQ #TEMP (ENTGET E-NAME1))
(SETQ #P1 (CDR (ASSOC 10 #TEMP)))
(SETQ $X (RTOS (CAR #P1) 2 3))
(SETQ $Y (RTOS (CADR #P1) 2 3))
(SETQ $Z (RTOS (CADDR #P1) 2 3))
(SETQ $XYZ (STRCAT (itoa (+ %ID 1))"," $X "," $Y "," $Z))
(WRITE-LINE $XYZ $F1)
(SETQ %ID (+ 1 %ID))
) ;_ 结束REPEAT
(CLOSE $F1)
) ;_ 结束DEFUN |
|