找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: li_seagull

[编程申请]:有没有一个标注尺寸文字文本刷子,使标注文字相同,谢谢!!!

[复制链接]
发表于 2004-10-19 15:18:20 | 显示全部楼层
最初由 urljit 发布
[B]
就是即便是测量值也换算成字符串 [/B]

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

使用道具 举报

发表于 2004-10-19 21:11:28 | 显示全部楼层
lsjjm:
    如ll_j所说:在组码1为空字符或“<>”时,组码42表示为“实际测量”值(R14没有此值),但此值根据精度不同,可能与标注显示不尽相同。
   我需要的就是在组码为空或“<>”时在cad屏幕上的尺寸线的标识的字符串,这可能和你的cad系统的计量单位、精度、圆整等等的有关。
   你在八楼的程序我看了,功能只有一个,将源尺寸刷到目标尺寸,不管它们是否为真正的字符串或数值。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-20 02:54:50 | 显示全部楼层
最初由 urljit 发布
[B]...你在八楼的程序我看了,功能只有一个,将源尺寸刷到目标尺寸,不管它们是否为真正的字符串或数值。[/B]

我使用的是2000i, 如果参照(源尺寸)是字符串, 不管目标尺寸是字符串或“实际测量”值, 均可以被刷成源尺寸的字符串. 如果参照是“实际测量”值, 那么目标尺寸均被恢复“实际测量”值.
因此能够满足你的"就是即便是测量值也换算成字符串" 要求.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-20 08:09:13 | 显示全部楼层
按照我的理解,本主题的意思应该是,不管源标注文字是字符串还是“实际测量”值,都应该理解为“字符串”,作为源字符串,所以在“实际测量”时还是应该提取组码42,然后根据该标注的标注样式(dimstyle)中dimdec值(组码271,角度变量dimadec,组码179)换算成字符串,作为“源”。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-20 08:24:02 | 显示全部楼层
将(setq e (car (entsel "\nSelect Destination Dimension: "))) 改为
(setq e (car (nentsel "\nSelect Destination Dimension string: "))) 选的时候,一定要点中标注文字.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-20 09:48:15 | 显示全部楼层
精力不行了,总是丢三落四,又忘记“影子”了,幸得江南斑竹点醒。
刚才写了一段,使用“影子”作为源,没有作出错处理,有兴趣可以试试看。
[php](defun c:dmp(/ ment ent ss)
  (setq ment(entsel "\n拾取源标注:"))
  (if (= (cdr (assoc 0 (entget (car ment)))) "DIMENSION")
    (progn
      (redraw (car ment) 3)
      (setq ent (cdr (assoc 2 (entget (car ment))))
            ent        (cdr (assoc -2 (tblsearch "BLOCK" ent)))
      )
      (while (/= (cdr (assoc 0 (entget ent))) "MTEXT")
        (setq ent (entnext ent))
      )
      (setq ent (cdr (assoc 1 (entget ent))))
      (princ "\n选择需要替换的标注:")
;;
      (while (setq ss  (ssget ":S"))
        (command "dim1" "new" ent ss "")
      )
;;
;|while段在R14中改为如下
      (setq ss  (ssget))
      (command "dim1" "new" ent ss "")
|;
    )
    (princ "\n选择实体不是标注。")
  )
  (redraw (car ment) 4)
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-20 10:55:18 | 显示全部楼层
如果19楼的理解, 可以这样:
[php]
(defun c:test ()
  (vl-load-com)
  (setq e (car (entsel "\nSelect Destination Dimension: ")))
  (setq obj0 (vlax-ename->vla-object e))
  (setq txt (vla-get-TextOverride obj0))
  (setq p (vla-get-PrimaryUnitsPrecision obj0))
  (if (= txt "")(setq txt (rtos (vla-get-measurement obj0 2 p))))
  (prompt "\nSelect Dimensions to change: ")
  (setq ss (ssget '((0 . "DIMENSION"))) n 0)
  (while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (vla-put-TextOverride obj txt)
    (setq n (1+ n))
  )
  (princ)
)
[/php]
不过, “实际测量”值刷成字符串如"DIA", "H" 等表示某种意思.
“实际测量”值刷成“源实际测量值”(即使是字符串)如 "2.345" > "5.432" 意义何在?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-10-24 07:16:22 | 显示全部楼层
最初由 lsjjm 发布
[B]如果19楼的理解, 可以这样:
[php]
(defun c:test ()
  (vl-load-com)
  (setq e (car (entsel "\nSelect Destination Dimension: ")))
  (setq obj0 (vlax-ename->vla-object e))
  (setq txt (vla-get-TextO... [/B]


首先谢谢lsjjm的程序,我认为是有用途的,因为可能比例不同而要的尺寸数字相同,在数量比较少的情况下就不必改dimstyle了,这样不是有用了?

还有就是请教ll_j:
  1. (while (/= (cdr (assoc 0 (entget ent))) "MTEXT")
  2.     (setq ent (entnext ent))
  3.       )

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-10-24 07:28:21 | 显示全部楼层
最初由 urljit 发布
[B]
就是即便是测量值也换算成字符串 [/B]

找起来还真不容易,很久以前的了

http://www.xdcad.net/forum/showt ... d=774735#post774735
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-24 07:43:08 | 显示全部楼层
看了eachy的帖子,竟和ll_j的方法是异曲同工,但还是不明白dim的组码为什么需要如此寻找。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-24 10:54:14 | 显示全部楼层
最初由 urljit 发布
[B]看了eachy的帖子,竟和ll_j的方法是异曲同工,但还是不明白dim的组码为什么需要如此寻找。 [/B]

我这样理解:
 Dim是一个复杂实体,样式是由标注样式Dimstyle所确定的,同一个标注样式控制多个标注,每个标注都是一个单独实体,其中的子实体有一定的“关联”又不尽相同,Acad在使用标注实体时并不完全记录这个标注实体中所有子实体的所有特性,只记录其主实体部分的特性,而子实体的特性记录在一个“隐含的”块中“备查”,我们所使用的就是这个块,也就是我锁的“影子”。
 我们知道,“块”在图中存在,但并不“可见”,当其可见时,是以“Insert”形式表现的。这样就可以看出,“标注”其实就像是一个“Insert”,与“Insert”不同的只是“标注”是“主要”的,块是“辅助”的,而“Insert”只是“块”的表现,可以理解为“块”是“主要”的。如果使用编程,这一点可以从一个试验看出,可以编程插入一个“标注”影射的块(匿名块),可以看出,这个块与标注外观一致,只是不能像标注一样编辑。
 说了这许多,其实就是说,“标注”的子实体搜索其实就是影射“块”的子实体搜索,就是使用entnext函数,其他复杂实体,如 POLYLINE 等也是使用这个函数搜索。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-24 11:59:48 | 显示全部楼层
谢谢ll_j的指导,只是不知道从何处得来cad里面的这些关联的内容,也就是说cad的帮助里面好像是没有的,你是怎样知道的呢?仅仅是试验出来的吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-25 07:56:11 | 显示全部楼层
试验是方法之一,但更多的还是学习来的,联机帮助中有,但可能分散在不同地方,书上有,也可能不是专题,论坛上有,是别人的总结,不一定全面...,综合起来,这就是你的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-25 11:54:27 | 显示全部楼层
哦,谢谢ll_j的总结,恐怕这也是晓东办这个网站的初衷吧,让大家有一个学习、交流的家园。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 10:08 , Processed in 0.481336 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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