找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: XDSoft

[有奖答题] 修改属性文字平齐用户坐标系...

[复制链接]

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-4-22 15:56:11 | 显示全部楼层

这似乎和坐标转换关系不大,看看我的这段代码:
[pcode=lisp,true](defun c:sa (/ ins dx) ;;属性转正
  (setq ins (car (entsel "\n拾取属性块:")))
  (while (= (cdr (assoc 0 (entget (setq ins (entnext ins)))))
            "ATTRIB"
         )
    (setq dx(getvar "ucsxdir")
          dx(atan (/ (cadr dx) (car dx)))  ;;得到当前UCS角度
    )
    (if        (/= (cdr (assoc 50 (entget ins))) dx)
      (entmod (subst
                (cons 50 dx)
                (assoc 50 (entget ins))
                (entget ins)
              )
      )
    )
  )
)[/pcode]

评分

参与人数 1D豆 +20 收起 理由
XDSoft + 20 可行

查看全部评分

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

使用道具 举报

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

使用道具 举报

发表于 2013-4-22 17:35:40 | 显示全部楼层
本帖最后由 yx5277 于 2013-4-22 17:39 编辑

对正方式是“布满”,这个方式对应的组码是5,角度不起作用了?如果是左右对齐的就很容易改:P
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-4-22 17:50:54 | 显示全部楼层

既然这样,霸道一下:
[pcode=lisp,true](defun c:sa (/ ins dx) ;;属性转正
  (load "acetutil3")
  (setq ins (car (entsel "\n拾取属性块:")))
  (while (= (cdr (assoc 0 (entget (setq ins (entnext ins)))))
            "ATTRIB"
         )
    (setq dx(getvar "ucsxdir")
          dx(atan (/ (cadr dx) (car dx)))  ;;得到当前UCS角度
    )
    (acet-tjust (ssadd ins) "MC")
    (if        (/= (cdr (assoc 50 (entget ins))) dx)
      (entmod (subst
                (cons 50 dx)
                (assoc 50 (entget ins))
                (entget ins)
              )
      )
    )
  )
)[/pcode]

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-4-22 18:10:15 | 显示全部楼层
ll_j 发表于 2013-4-22 17:50
既然这样,霸道一下:
(defun c:sa (/ ins dx) ;;属性转正
  (load "acetutil3")

LL_J大哥,
  1. (acet-tjust (ssadd ins) "MC")
复制代码
这个函数是做什么的~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-4-22 18:41:49 | 显示全部楼层
Lispboy 发表于 2013-4-22 18:10
LL_J大哥,这个函数是做什么的~

这是ExpressTools的函数,这个函数是修改文本对齐点的。
我所说的“霸道”,就是把不管什么对齐方式的属性文字都强制修改成中心对齐形式,然后旋转,一般情况下这就够用了。
因为我专业的不同,不太使用属性块,也就不太知道这里到底有什么习惯,所以就随便搞一下,权当抛砖吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-22 21:23:11 | 显示全部楼层
yx5277 发表于 2013-4-22 17:35
对正方式是“布满”,这个方式对应的组码是5,角度不起作用了?如果是左右对齐的就很容易改

其实这个问题的实质感觉就是在对正方式为“布满”或者是fit的情况下,如何修改文字的旋转角度?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-4-22 23:09:32 | 显示全部楼层
wowan1314 发表于 2013-4-22 11:19
这个确实要考虑下了! 最近画图发现几个程序都没考虑用户坐标系,导致无法使用!

哎! 本以为要告别编程 ...

哥哥哪里都能看到你的身影啊!哈哈。

点评

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

使用道具 举报

发表于 2013-4-22 23:42:58 | 显示全部楼层
块属性文本ucs旋转01.gif
  1. (defun c:tt ()
  2.   (setq        p1   (getvar "UCSXDIR")
  3.         rad  (angle '(0 0) p1)
  4.         s1   (car (entsel "\n选择: "))
  5.         obj  (car (xyp-get-LispValue (vla-GetAttributes (vlax-ename->vla-object s1))))
  6.         vlpt (vlax-3d-point (xyp-9pt (vlax-vla-object->ename obj) 5))
  7.         rr   (- rad (vla-get-Rotation obj))
  8.   )
  9.   (vla-rotate obj vlpt rr)
  10.   (princ)
  11. )

评分

参与人数 1D豆 +15 收起 理由
XDSoft + 15 技术讨论奖!

查看全部评分

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-23 08:14:29 | 显示全部楼层

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

使用道具 举报

发表于 2013-4-23 08:15:54 | 显示全部楼层
  1. (defun xyp-get-LispValue (Value) (vlax-safearray->list (vlax-variant-value Value)))

点评

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-23 08:16:57 | 显示全部楼层

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-23 08:18:30 | 显示全部楼层
eachy 发表于 2013-4-22 23:07
最简单的方法、正确的方法是旋转块,不要拿 Attributes 练啦

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-4-23 10:01:51 | 显示全部楼层
个人以为,正解应该是求出属性文字的中心,然后不改变文字的对齐方式,旋转一个角度。
由插入点算出文字中点并不难,但对齐方式多种多样,每种都考虑,使用ALis,程序还是相对复杂的,不过,如果通过包围盒来求,使用VLisp,或许变化少一些。
我的代码改变了文字的对齐方式,此是败笔,不过也不想多研究了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 23:46 , Processed in 0.476803 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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