明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 啵浪鼓

mirrtext文字反向问题

  [复制链接]
发表于 2011-4-1 08:19:14 | 显示全部楼层
回复 啵浪鼓 的帖子

实在搞不懂你在说什么?你给个明确的图示,例如:
1、原始定义图块的样子
2、实际插入图块后经过镜像、旋转后图块的样子
3、上述第2条的图块要还原成什么样子

 楼主| 发表于 2011-4-1 18:36:02 | 显示全部楼层
实在搞不懂你在说什么?你给个明确的图示,例如:
1、原始定义图块的样子            -->左边的图是原始的图块
2、实际插入图块后经过镜像、旋转后图块的样子  -->6楼的附件test.rar内有测试图档
3、上述第2条的图块要还原成什么样子  -->还原成左边的图块

左边的图(原始块)文字在90度位置 与 右边的图(被镜像的块)在180度位置,程序想要完成的是:
如何将右边的图块180度的文字 还原成 左边的最初的图块 文字在90度位置?

本帖子中包含更多资源

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

x
发表于 2011-4-1 19:35:22 | 显示全部楼层
回复 啵浪鼓 的帖子

你把简单问题搞复杂化了!修改步骤:
1、右边图块的旋转角改为0
2、修改属性的组码71为0,修改组码50的值为原始属性文字定义角度0,可能还包括其他组码属性,如51倾斜角,72对证样式等等,具体你去查一下文字的组码表!
 楼主| 发表于 2011-4-1 22:20:00 | 显示全部楼层
本帖最后由 啵浪鼓 于 2011-4-1 22:28 编辑

这种方法做的程序,还有三个问题:
1, 用entmod生成的块,为什么块归0,而属性文字不旋转
2,角度怎样换算的呢? 3.14/1.57 如果先用rotate命令旋转将块和文字一并归0呢
3,为什么用entmod生成的东东,必须要用regen命令重新生成才行呢?
4,现在的程序用entmod将属性文字生成归0后,文字与块距离很远呢?

(defun c:q ()
  (setvar "cmdecho" 0)
  (setq os (getvar "osmode"))
  (setq mt (getvar "mirrtext"))
  (command "undo" "be")
  (setvar "osmode" 0)
  (defun *error*(msg)
    (setvar "osmode" os)
    (setvar "mirrtext" mt)
    (command "undo" "e")
    (setq *error* nil)
    (princ)
  )
  (princ " Block块文字调整")
  (setq ss (ssget '((0 . "INSERT"))))
  (if ss
    (progn
        (setq i 0)
        (repeat (sslength ss)
          (setq si (ssname ss i))
          (setq rh (entget si))
          (setq zb (cdr (assoc 10 rh)))
          (setq rt1 (cdr (assoc 41 rh)))
          (setq rt2 (cdr (assoc 50 rh)))
****************************************************************
;此段只能将属性块旋转归0,为什么属性文字不能归0呢?
;          (setq rh (subst '(50 . 0) (assoc 50 rh) rh))
;          (entmod rh)
****************************************************************
;此段的角度值是怎么计算的?有没有变法得到角度值,然后rotate直接旋转至0度?
          (if (and (> 1.75 rt2)(< 1.35 rt2))
              (command "rotate" si "" zb "@10<270")
          )
          (if (and (> 3.35 rt2)(< 2.95 rt2))
              (command "rotate" si "" zb "@10<180")
          )
          (if (and (> 4.9 rt2)(< 4.5 rt2))
              (command "rotate" si "" zb "@10<90")
          )
****************************************************************
          (setq i (+ i 1))
        )
        (repeat (setq n (sslength ss))
          (setq ent (ssname ss (setq n (1- n))))
          (while (= (cdr (assoc 0 (setq lst (entget (setq ent (entnext ent)))))) "ATTRIB")
;;;处理 lst 表
            (if (= 2 (cdr (assoc 71 lst)))
              (progn
                (setq lst (subst '(71 . 0) (assoc 71 lst) lst))
                (entmod lst)  ;需要regen重新生成后才能正确显示,而且生成的文字离块很远?
              )
            )
            (if (/= 0 (cdr (assoc 50 lst)))
              (progn
                (setq lst (subst '(50 . 0) (assoc 50 lst) lst))
                (entmod lst)  ;需要regen重新生成后才能正确显示,而且生成的文字离块很远?
              )
            )
          )
        )
     )
  )
  (*error* "")
)


本帖子中包含更多资源

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

x
 楼主| 发表于 2011-4-2 18:09:44 | 显示全部楼层
字跟块离得好远,哎~
 楼主| 发表于 2011-4-3 12:30:41 | 显示全部楼层
Gu_xl 版主,来帮下忙呀,期盼有好的办法解决呀
 楼主| 发表于 2011-4-4 13:27:45 | 显示全部楼层
各位大虾,来帮下忙呀,期盼有好的办法解决呀
 楼主| 发表于 2011-4-4 23:17:03 | 显示全部楼层
看来是没有人知道块是mirrortext为0时镜向后的状态,所以程序也没办法进行了,算了,放弃 了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-10 14:13 , Processed in 0.148994 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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