明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 521|回复: 0

施工坐标转成大地坐标?

[复制链接]
发表于 2024-9-20 17:02:02 | 显示全部楼层 |阅读模式
假如我们把地下室和每层平面图各自设置一个用户坐标(用户坐标才是大坐标),就可以大坐标直接放线了,现在的CAD放线软件都能识别多个UCS,是不是很爽

  1. (defun vxs (e / i v lst)
  2.     (setq i -1)
  3.     (while
  4.        (setq v   (vlax-curve-getpointatparam e (setq i (1+ i))))
  5.        (setq lst (cons v lst))
  6.     )
  7.     (reverse lst)
  8.   )


  9. (defun c:zb123 (/ p1 p2 p3 p4 yuandian fxdian xbzx bz UCSColl origin xAxisPnt yAxisPnt ucsObj)

  10. (VL-LOAD-COM)

  11. (setq xbzx (getstring "\n请输入新坐标系的名称:")   )
  12. (setq bz(getvar "osmode"))
  13.    
  14. ;(command "_.pline" '(0.0000 0 0) '(100.000 0 0) "")
  15. (setq p1 (getpoint "\n请点击广州坐标源点1: "))
  16. (setq p2 (getpoint "\n请点击广州坐标源点2: "))
  17.   (command "_.pline" '(0.0000 0 0) (list (* 1000(distance p1 p2)) 0 0) "")
  18. (setq p3 (getpoint "\n请点击施工坐标源点1 :"))
  19. (setq p4 (getpoint "\n请点击施工坐标源点2 :"))
  20. (command "_.align" (entlast) ""  p1 p3 p2 p4 "" "n" )
  21. (setq yuandian (car (vxs (entlast))))
  22. (setq fxdian (cadr (vxs (entlast))))
  23.   ;(setq yuandian (cdr(assoc 10 (entget(entlast)))) )
  24. ;(setq fxdian (cdr(assoc 11 (entget(entlast)))) )


  25.   (setvar "osmode" 0)
  26. (vl-cmdf "_.ucs" "3p" yuandian  fxdian  "" )

  27.   ;(vl-cmdf "_.ucs"  "ob" (mapcar '* '(0.5 0.5 )  (mapcar '+ yuandian fxdian) )    )
  28. (command "_.ucs" "na" "s" xbzx )
  29.   (setvar "osmode" bz)
  30.   ;(command "_.plan" "c")
  31.   (entdel (entlast))
  32. (command "_.ucs" "w"  )  
  33. (princ)
  34. )

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 14:56 , Processed in 0.171449 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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