明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2157|回复: 9

图形旋转,坐标不变,有没有高手可以解决?

[复制链接]
发表于 2012-11-14 16:38:12 | 显示全部楼层 |阅读模式
各位高手,小弟有个问题,好久了,一直没有解决,万能的明经有没有办法啊,我是搞土木桥梁的,比如说一个正交直线桥,在CAD里面画出桩位图,画出来的路线图是斜的,有没有办法把图纸旋转正交,沿正Y方向,而且各个点的坐标不变!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-11-15 08:48:11 | 显示全部楼层
就象下面图示的这样?可以桥线为 Y 轴建一 ucs,plan 命令将视图配合到当前 ucs,将图框和里面的些文字需要的话旋转到 0 °,然后在 ucs 的 wcs 选项返回原来的坐标系统。需要的话,可以在刚才的 ucs 里命名保存下,以后可以直接再回到这个 ucs 状态以对图面进行操作,比如添加文字说明之类;需要重新生成坐标列表的话,再返回 wcs;如果坐标列表程序是自己的话,修改下以 wcs 而非 ucs 生成坐标,也就无须返回 wcs 了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-11-15 08:55:38 | 显示全部楼层
(defun C:Qq() (command "ucsfollow" "0" "UCS" "OB") (PRINC))  
;局部坐标系,不旋转模型空间

(defun C:Q1() (command "ucsfollow" "1" "UCS" "OB") (PRINC))  
;局部坐标系,旋转模型空间
(DEFUN C:Qw () (COMMAND "ucsfollow" "0" "UCS" "W") (PRINC))
;世界坐标系
(DEFUN C:Q3 () (COMMAND "ucsfollow" "1" "UCS" "W") (PRINC))
;世界坐标系,旋转模型空间
发表于 2012-11-15 08:58:58 | 显示全部楼层
(defun ug()               ;获取ucs角度
( setq ug1  (getvar  "ucsxdir" ))
( setq x1 (car ug1))
( setq y1 ( car (cdr ug1)))
( setq ug2 (/ y1 x1))
( setq ug3 (atan ug2))
)
(defun c:fa (/ ent1 pt_START pt_END)
(ug)
  (setq ent1 (entsel "\n请选择对象:"))
  (cond
    ((= ENT1 NIL) (CHSNAP))
    (
     (= (cdr (assoc 0 (entget (car ent1)))) "LWPOLYLINE")
     (CHSNAP)
    )
    (
     (=
       (cdr (assoc 0 (entget (car ent1))))
       "LINE"
     )
     (progn
       (setq pt_START (cdr (assoc 10 (entget (car ent1)))))
       (setq pt_END (cdr (assoc 11 (entget (car ent1)))))
       (setvar "snapang" (- (angle pt_START pt_END) ug3 ))
     )
    )
  )
  (setvar "orthomode" 1)
  (princ)
)

(DEFUN
   CHSNAP
  (/ PT1 PT2)
  (setq pt1 (getpoint "\n请选择第一点:"))
  (setq pt2 (getpoint "\n请选择第二点:"))
  (setvar "snapang" (angle pt1 pt2))
)
(defun c:af()
(setvar "snapang"0)

)
;这个主要是通过修改snapang这个变量,来旋光标方向,还需完善,我上网下载的。
发表于 2012-11-15 20:02:16 | 显示全部楼层
看是不是你想要的



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-11-15 20:37:43 | 显示全部楼层
vip-happy 发表于 2012-11-15 20:02
看是不是你想要的

你没发现你的每个桩基的坐标都变化了吗?
 楼主| 发表于 2012-11-15 20:38:15 | 显示全部楼层
dunkel 发表于 2012-11-15 08:48
就象下面图示的这样?可以桥线为 Y 轴建一 ucs,plan 命令将视图配合到当前 ucs,将图框和里面的些文字需要 ...

每个点的坐标变化了吗?
发表于 2012-11-16 08:56:25 | 显示全部楼层
坐标系统不变或者回复了原来的,各点的坐标当然不会发生变化,又不是对实体进行了移动或旋转。
发表于 2012-11-17 12:08:06 | 显示全部楼层
楼主可以在布局里旋转处理!
发表于 2012-11-19 16:40:22 | 显示全部楼层
本帖最后由 ll_j 于 2012-11-19 16:41 编辑

看看我这段程序能不能用,这是我以前一个程序的一部分,刚才调整了一下。
  1. (defun hh_()
  2.   (princ "\n字高 <")
  3.   (princ h_)
  4.   (setq h__ (getdist pt1 ">: "))
  5.   (if (/= h__ nil)
  6.     (progn
  7.       (setq h_ h__)
  8.       (setvar "textsize" h_)
  9.     )
  10.   )
  11.   (setq pt2 nil)
  12. )
  13. (defun scc_()
  14.   (princ "\n坐标比例 <")
  15.   (princ sca_)
  16.   (setq sca__ (getreal ">: "))
  17.   (if (/= sca__ nil) (setq sca_ sca__))
  18.   (setq pt2 nil)
  19. )

  20. (defun mktext(:str :pt10 / :sty)  ;写文字
  21.   (setq        :pt10(trans :pt10 1 0))
  22.   (entmake
  23.     (list
  24.       '(0 . "TEXT")
  25.       (cons 1 :str)
  26.       (cons 10 :pt10)
  27.       (cons 11 :pt10)
  28.       (cons 7 (setq :sty(getvar "textstyle")))
  29.       (cons 40 h_)
  30.       (cons 41 (cdr (assoc 41 (tblsearch "style" :sty))))
  31.       (cons 50 (angle (trans '(0 0 0) 1 0) (trans '(1 0 0) 1 0)))
  32.       '(71 . 0)
  33.       (cons 72 0)
  34.     )
  35.   )
  36. )

  37. (defun c:idd(/ px pt0 pt1 pt2 pt3 pt4 lx pt1x pt2y jd h__ sca__)    ;;标注点坐标于图形屏幕
  38.   (setvar "unitmode" 0)
  39.   (setq pt1 (getpoint "\n给出测量点:")
  40.         h__ (getvar "textsize")
  41.         sca__ 1.0
  42.         pt2 nil
  43.   )
  44.   (if (or (= h_ nil) (/= h_ h__)) (setq h_ h__))
  45.   (if (= sca_ nil) (setq sca_ sca__))
  46.   (if (= ou_ nil) (setq ou_ "上下"))
  47.   (if (= sy_ nil) (setq sy_ "大地坐标"))
  48.   (while (= pt2 nil)
  49.     (princ (strcat "\n坐标系统:" sy_ "; 输出模式:" ou_ "; 字高:" (rtos h_ 2 2) "; 坐标比例" (rtos sca_ 2 2) "。"))
  50.     (initget "Out Coo Height Scale")
  51.     (setq pt2 (getpoint pt1 "\n坐标系统C / 输出模式O / 字高H / 坐标比例S / < 给出输出点 >: "))
  52.     (cond
  53.       ((= pt2 "Height") (hh_))
  54.       ((= pt2 "Scale") (scc_))
  55.       ((= pt2 "Coo")
  56.        (if (= sy_ "大地坐标")
  57.          (setq sy_ "用户坐标")
  58.          (if (= sy_ "用户坐标")
  59.            (setq sy_ "世界坐标")
  60.            (setq sy_ "大地坐标")
  61.          )
  62.        )
  63.        (setq pt2 nil)
  64.       )
  65.       ((= pt2 "Out") (if (= ou_ "水平") (setq ou_ "上下") (setq ou_ "水平")) (setq pt2 nil))
  66.       (t  nil)
  67.     )
  68.   )
  69.   (if (or (= sy_ "大地坐标") (= sy_ "世界坐标")) (setq pt0 (trans pt1 1 0)) (setq pt0 pt1))
  70.   (setq pt1x(rtos (* (car pt0) sca_) 2 3)
  71.         pt1y(rtos (* (cadr pt0) sca_ ) 2 3)
  72.   )
  73.   (if (= sy_ "大地坐标") (setq px pt1y pt1y pt1x pt1x px))
  74.   (if (= ou_ "上下")
  75.     (progn
  76.       (setq pt1x (strcat "X=" pt1x)
  77.             pt1y (strcat "Y=" pt1y)
  78.             lx   (+ (max (caadr (textbox (list (cons 1 pt1x)))) (caadr (textbox (list (cons 1 pt1y))))) (* 0.4 h_))
  79.       )
  80.       (if (>= (car pt2) (car pt1))
  81.         (setq pt3 (list (+ (car pt2) (* 0.2 h_)) (+ (cadr pt2) (* 0.4 h_)) 0.0)
  82.               pt4 (list (+ (car pt2) (* 0.2 h_)) (- (cadr pt2) (* 1.4 h_)) 0.0)
  83.               jd 0.0
  84.         )
  85.         (setq pt3 (list (+ (car pt2) (* 0.2 h_) (- lx)) (+ (cadr pt2) (* 0.4 h_)) 0.0)
  86.               pt4 (list (+ (car pt2) (* 0.2 h_) (- lx)) (- (cadr pt2) (* 1.4 h_)) 0.0)
  87.               jd pi
  88.         )
  89.       )
  90.       (mktext pt1x pt3)
  91.       (mktext pt1y pt4)
  92.       (command "line" pt1 pt2 (polar pt2 jd lx) "")
  93.     )
  94.     (progn
  95.       (setq pt3 pt2)
  96.       (mktext pt1x pt3)
  97.       (setq pt4 (list (+ (car pt2) (caadr (TEXTBOX (entget(entlast)))) h_) (cadr pt2) 0.0))
  98.       (mktext pt1y pt4)
  99.     )
  100.   )
  101.   (princ)
  102. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 16:58 , Processed in 0.183568 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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