找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 692|回复: 7

[求助] [求助]:请教一个标注文本位置的问题

[复制链接]
发表于 2004-9-17 12:42:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
请问如何获取标注时的标注文本位置

好像那些10,11,13,14等的代码都不是文本的位置

比如在entget一个标注后,对标注文本进行夹点移动,但是得到的entget结果都是一样

请问是要搜索子实体么?谢谢

提出这个问题是希望编写一段恢复标注文本到原始默认位置(比如这些标注文本给夹点移动过了的)的小程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-17 13:21:47 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-17 16:52:20 | 显示全部楼层
谢谢高手啊,我仔细学学
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-17 22:45:40 | 显示全部楼层
我也正想问这个问题呢,多谢2楼楼主了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-17 23:40:13 | 显示全部楼层

  1. ;;取标注文本的位置.
  2. ;; (get-dimtext-pt (setq dm (car(entsel))))
  3. (defun get-dimtext-pt (dm / e el)
  4.   (setq e (cdr (assoc -2 (tblsearch "block" (cdr (assoc 2 (entget dm)))))))
  5.   (while (and (setq e (entnext e))
  6.               (not (member '(100 . "AcDbMText") (setq el (entget e)))))
  7.   )
  8.   (if e (cdr (assoc 10 el)) nil)
  9. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-18 10:06:12 | 显示全部楼层
非常谢谢aidraft兄和梦断江南斑竹的解答
昨天本来就着aidraft兄的思路往下走,搜索block中mtext部分,然后得到其座标
按照ename中各个尺寸特征点10,11,13,14等计算默认点的位置,也完成了
不过一旦夹点移动之后,不能自动更新。
后来发现假如要恢复默认点,居然可以很简单,:)
仔细看了ename的各个参数,原来70这个点对就是在控制默认点的。
比如dim linear(包括vertical和horizontal)的70属性是32,拖动之后变成160
dim align的70属性是33,拖动之后变成161
dim angular的70属性是34,拖动之后变成162
dim diameter的70属性是35,拖动之后变成163
dim radius的70属性是36,拖动之后变成164
dim ordinate的70属性是102,拖动之后变成230
dim baseline和continue的70属性似乎是和其跟随的标注有关
大致所有的70属性在拖动后都增加了128。
所以恢复文本默认位置的程序就变成了将70属性-128就可以了
再次谢谢aidraft兄,让我明白了dim里面各个参数的提取。
如下附上简单的恢复默认位置的程序,见笑了


(defun c:ddd ()
  (setq dimset (ssget '((0 . "DIMENSION"))))
  (setq n (sslength dimset))
  (setq i 0)
  (repeat n
    (setq ename (ssname dimset i))
    (setq entname (entget ename))
    (setq ali (cdr (assoc 70 entname)))
    (if (>= ali 129)
      (entmod (subst
                (cons 70 (- ali 128))
                (assoc 70 entname)
                entname
              )
      )
    )
    (setq i (1+ i))
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-16 23:20:23 | 显示全部楼层
对编成有点还是有些帮助,支持搂主
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-10 02:20:50 | 显示全部楼层
最初由 snoopychen 发布
[B]非常谢谢aidraft兄和梦断江南斑竹的解答
昨天本来就着aidraft兄的思路往下走,搜索block中mtext部分,然后得到其座标
按照ename中各个尺寸特征点10,11,13,14等计算默认点的位置,也完成了
不过一旦夹点移动之?.. [/B]


老大,用你这个程序不能使尺寸值恢复原位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 19:25 , Processed in 0.253791 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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