找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 773|回复: 13

[已解决] 如何给标注文字加上填充?

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2018-4-4 09:40:11 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 newer 于 2018-4-4 22:11 编辑

以下方法没有成功
(setq ent (car (entsel)))
(vlax-put-property  (vlax-ename->vla-object ent)  "TextFill"  -1)
(vlax-put-property  (vlax-ename->vla-object ent)  "TextFillColor"  1)

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

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-4-4 14:34:19 | 显示全部楼层
本帖最后由 marting 于 2018-4-4 14:43 编辑
defun 发表于 2018-4-4 12:50
我知道了,cad版本的问题,2008不行,10和14就可以了,2008有办法吗

这是一个ADESK确认的BUG,

正常情况下,给标注添加OVERIDE,都是给标注实体添加扩展实体数据,对于TEXTFILL,正常的XDATA应该是:

(-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 70)
(1070 . 1) (1070 . 69) (1070 . 2) (1002 . "}"))))


而2008下是

(-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 70)
(1070 . 1) (1070 . 69) (1070 . 1) (1002 . "}"))))


所以,要想解决2008下这个BUG,就是TEXTFILL后,修改下扩展实体数据,把1改成2.

下面是代码:

搜狗截图20180404143008.png

  1. (defun c:tt ()
  2.   (if (and (setq e (car (entsel "\n选择标注:")))
  3.            (wcmatch (vla-get-objectname (setq o (vlax-ename->vla-object e)))
  4.                     "*Dimension"
  5.            )
  6.       )
  7.     (progn (vla-put-textfill o :vlax-true)
  8.            (setq ed    (entget e '("ACAD"))
  9.                  xdata (cadr (assoc -3 ed))
  10.            )
  11.            (if (setq val (vl-position (cons 1070 69) xdata))
  12.              (progn (setq newxdata (list
  13.                                      (list '-3
  14.                                            (XD::List:Replace_Nth xdata (1+ val) (cons 1070 2))
  15.                                      )
  16.                                    )
  17.                     )
  18.                     (entmod (append (entget e) newxdata))
  19.                     (vla-update o)
  20.              )
  21.            )
  22.       (vla-put-textfillcolor o 1)
  23.     )
  24.   )
  25.   (princ)
  26. )



XD::List:Replace_Nth

游客,如果您要查看本帖隐藏内容请回复

点评

果然如此,受教受教  详情 回复 发表于 2018-4-4 15:38

评分

参与人数 1D豆 +5 收起 理由
defun + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

已领礼包: 769个

财富等级: 财运亨通

发表于 2018-4-4 11:30:16 | 显示全部楼层
  1. ;试试看
  2. (vlax-put-property  (vlax-ename->vla-object ent)  "TextFill"  -1);-1--->1 or :vlax-true
  3. (vlax-put-property (vlax-ename->vla-object ent)  "TextFill" 1)
  4. (vlax-put-property (vlax-ename->vla-object ent)  "TextFill" :vlax-true)

点评

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-4 12:07:16 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-4-4 12:24:58 | 显示全部楼层
本帖最后由 Lisphk 于 2018-4-4 13:01 编辑
defun 发表于 2018-4-4 12:07
试过,没有效果

可以啊,你选的是标注吗?

搜狗截图20180404122555.png

  1. (defun c:tt ()
  2.   (if (and (setq e (car (entsel "\n拾取标注:")))
  3.            (wcmatch (vla-get-objectname (setq o (vlax-ename->vla-object e))) "*Dimension")
  4.       )
  5.     (progn (vlax-put-property
  6.              o
  7.              "TextFill"
  8.              :vlax-true
  9.            )
  10.            (vlax-put-property
  11.              o
  12.              "TextFillColor"
  13.              1
  14.            )
  15.     )
  16.   )
  17.   (princ)
  18. )


点评

我知道了,cad版本的问题,2008不行,10和14就可以了,2008有办法吗  详情 回复 发表于 2018-4-4 12:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-4 12:50:35 | 显示全部楼层
Lisphk 发表于 2018-4-4 12:24
可以啊,你选的是标注吗?

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-4-4 13:02:58 | 显示全部楼层
defun 发表于 2018-4-4 12:50
我知道了,cad版本的问题,2008不行,10和14就可以了,2008有办法吗

试了2008,果然不行,但标注替代显示已经设置进去了,那就是2008的BUG了吧

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2018-4-4 15:38:43 | 显示全部楼层
marting 发表于 2018-4-4 14:34
这是一个ADESK确认的BUG,

正常情况下,给标注添加OVERIDE,都是给标注实体添加扩展实体数据,对于TEX ...

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-4-4 22:10:14 | 显示全部楼层
vba的解决方案

  1. Sub TEST()
  2. Dim ou As AcadUtility
  3. Set ou = ThisDrawing.Utility
  4. Dim o As Object 'AcadEntity
  5. Dim pt As Variant
  6. ou.GetEntity o, pt

  7. o.TextFill = True

  8. Dim xdataOut As Variant
  9. Dim xtypeOut As Variant
  10. o.GetXData "ACAD", xtypeOut, xdataOut
  11. If IsArray(xdataOut) Then
  12. Dim i As Long
  13. For i = LBound(xdataOut) To UBound(xdataOut)
  14. If xdataOut(i) = 69 Then
  15. xdataOut(i + 1) = 1
  16. Exit For
  17. End If
  18. Next
  19. End If
  20. o.SetXData xtypeOut, xdataOut
  21. End Sub

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2018-4-5 00:05:12 | 显示全部楼层
学习一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 5583个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 215个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1337个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 11:49 , Processed in 0.490998 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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