天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 51|回复: 0

[源码] 输出指定块的经纬度坐标

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    185

    主题

    150

    回帖

    1695

    积分

    管理员

    积分
    1695
    发表于 2024-4-8 21:48:21 | 显示全部楼层 |阅读模式

    1. (defun WirteLog (text)
    2.         (setq filename "C:\\xxtool_log.txt") ; 设置文件路径和名称
    3.         (setq filehandler (open filename "a")) ; 打开文件并设置为追加模式
    4.         (write-line text filehandler)
    5.         (close filehandler)
    6. )



    7. (defun gs3xy2cs200022(x y) ;高斯3转cs2000(表为参数)
    8.         (setq l0 114.0)
    9.         (setq iPI 0.0174532925199433)
    10.         (setq a 6378137)
    11.         (setq f (/ 1 298.257222101))
    12.         (setq ZoneWide 3)
    13.         (setq ProjNo (/ x 1000000.000))
    14.         (setq ProjNo (fix (/ x 1000000)))
    15.         (setq l0 (* (ctl2go l0) iPI))
    16.         (setq X0 (+ (* ProjNo 1000000) 500000))
    17.         (setq Y0 0)
    18.         (setq xval (- x X0))
    19.         (setq yval (- y Y0))
    20.         (setq e2 (- (* 2 f) (* f f)))
    21.         (setq e1 (/ (- 1 (sqrt (- 1 e2))) (+ 1 (sqrt (- 1 e2)))))
    22.         (setq ee (/ e2 (- 1 e2)))
    23.         (setq m yval)
    24.         (setq u (/ m (* a (- 1 (/ e2 4) (/ (* 3 e2 e2) 64) (/ (* 5 e2 e2 e2) 256)))))
    25.         (setq fai (+ u (* (- (/ (* 3 e1) 2) (/ (* 27 e1 e1 e1) 32)) (Sin (* 2 u))) (* (- (/ (* 21 e1 e1) 16) (/ (* 55 e1 e1 e1 e1) 32)) (Sin (* 4 u))) (* (/ (* 151 e1 e1 e1) 96) (Sin (* 6 u))) (* (/ (* 1097 e1 e1 e1 e1) 512) (Sin (* 8 u)))))
    26.         (setq C (* ee (Cos fai) (Cos fai)))
    27.         (setq tt (* (tan fai) (tan fai)))
    28.         (setq NN (/ a (sqrt (- 1 (* e2 (Sin fai) (Sin fai))))))
    29.         (setq R (/ (* a (- 1 e2))(sqrt(* (- 1 (* e2 (Sin fai) (Sin fai))) (- 1 (* e2 (Sin fai) (Sin fai))) (- 1 (* e2 (Sin fai) (Sin fai)))))))
    30.         (setq D (/ xval NN))
    31.         (setq longitude1 (+ l0 (/ (+ (- D (/ (* (+ 1 (* 2 tt) C) D D D) 6)) (/ (* (+ (- 5 (* 2 C) (* 3 C C)) (* 28 tt) (* 8 ee) (* 24 tt tt)) D D D D D) 120)) (Cos fai))))
    32.         (setq latitude1 (- fai (* (/ (* NN (tan fai)) R) (+ (- (/ (* D D) 2) (/ (* (- (+ 5 (* 3 tt) (* 10 C)) (* 4 C C) (* 9 ee)) D D D D) 24)) (/ (* (- (+ 61 (* 90 tt) (* 298 C) (* 45 tt tt)) (* 256 ee) (* 3 C C)) D D D D D D) 720)))))
    33.         (setq latitude (/ latitude1 iPI))
    34.         (setq longitude (/ longitude1 iPI))
    35.         (list longitude latitude)
    36. )

    37. (defun findcoords()
    38.   (setq ss (ssget '((0 . "INSERT") (2 . "*水泥单杆*380V"))))
    39.   (if ss
    40.     (progn
    41.       (setq i 0)
    42.       (repeat (sslength ss)
    43.         (setq ent (ssname ss i))
    44.                                 (setq atts (entget ent))
    45.         (setq blkname (cdr (assoc 2 atts)))
    46.         (setq coords (cdr (assoc 10 atts)))
    47.                                 (setq cgcs2000 (gs3xy2cs200022 (car coords) (cadr coords)))
    48.         (setq name (cdr (assoc 2 atts)))
    49.         (WirteLog (strcat "块名称=" name ": " (rtos (car cgcs2000) 2 6) "," (rtos (cadr cgcs2000) 2 6) ""))
    50.         (setq i (1+ i))
    51.       )
    52.     )
    53.   )
    54. )

    55. (findcoords)

    复制代码

     

     

     

     

    [源码] 输出指定块的经纬度坐标
    哎...膜结构车棚,签到来了1...
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-5-16 06:35 , Processed in 0.127722 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表