找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4402|回复: 34

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

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-22 10:35:28 | 显示全部楼层 |阅读模式

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

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

×
很多朋友在写程序的时候往往都忽视用户坐标系,包括一些专业软件,其实充分利用好用户坐标系,绘图往往效率更高。

现在的题目见二楼图和附件。



图形中当前在用户坐标系下,为了出图的美观,我们需要把左边的块属性字F21修改为右边红色的F21,让F21平行于用户坐标系。

大家写写代码,看看哪个代码最优最美。

相对最好的代码奖励D豆50,所有参与贴代码到论坛的朋友,只要能实现都奖励20D豆。



豆不在多,重在参与,快乐的编程。

评分

参与人数 1D豆 +3 收起 理由
炫翔 + 3 出题引导交流奖!

查看全部评分

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

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-22 10:40:25 | 显示全部楼层


QQ截图20130422102421.png


测试图形见附件。

Drawing2.rar

11.57 KB, 下载次数: 25, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

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

使用道具 举报

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

哎! 本以为要告别编程了!才发现程序更新无止境啊!

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

使用道具 举报

发表于 2013-4-22 11:23:18 | 显示全部楼层
问题提的非常好,我们也是用户提到这个问题的时候才去修改的,不过可以趁这个机会总结出一整套方法来简化命令对UCS的支持。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-22 11:38:19 | 显示全部楼层
zfbj 发表于 2013-4-22 11:23
问题提的非常好,我们也是用户提到这个问题的时候才去修改的,不过可以趁这个机会总结出一整套方法来简化命 ...

其实这都是编程者养成的习惯,或者是意识,不用什么高深的编程技巧和算法。其实在写程序的时候对点的操作加个TRANS 就可以了,但是如果后期去找代码修改,那就是工作量很大了,可鞥按倒葫芦起了瓢。

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

使用道具 举报

发表于 2013-4-22 11:44:54 | 显示全部楼层
我的经验是:在程序的开始一律将ucs设置到wcs,程序结束时恢复ucs,所以在程序中间就无需考虑ucs的问题!

点评

我也是这样弄的,通用比较好  发表于 2013-4-22 13:33
那样坐标会变一下!不过确实大部分情况都能解决了!只是文字角度有时候需要按用户坐标系调整!那么就不妥了!  发表于 2013-4-22 11:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-4-22 11:50:49 | 显示全部楼层
组码里得到的点是什么坐标下的点?
ENTMAKE的时候里面的点又是什么坐标下的?
一般函数在运行时候得到的点又是什么坐标下的?
很迷糊!除了世界坐标系、用户坐标系还有对象坐标系!这些都没搞清楚呢!
是不是组码得到的点坐标与ENTMAKE用的点坐标都要是WCS情况下的?
而函数运行得到的点是用户坐标系的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-22 12:02:46 | 显示全部楼层
Gu_xl 发表于 2013-4-22 11:44
我的经验是:在程序的开始一律将ucs设置到wcs,程序结束时恢复ucs,所以在程序中间就无需考虑ucs的问题!

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

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2013-4-22 12:56:44 | 显示全部楼层
本帖最后由 Lisper 于 2013-4-22 13:13 编辑

[pcode=lisp,true];;旋转属性到UCS方向
(defun c:tt (/ ANG SS N OBJ CP ll ur)
  (setq ang (angle '(0 0 0) (getvar 'ucsxdir))) ;_ ucs x方向WCS角度
  (if (setq ss (ssget '((0 . "insert") (66 . 1)))) ;_ 选择属性快
    (repeat (setq n (sslength ss))
      (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
      (foreach att (vlax-invoke obj 'GetAttributes)
        (if (not
              (VL-CATCH-ALL-ERROR-P
                (VL-CATCH-ALL-APPLY
                  'vla-GetBoundingBox
                  (list att 'll 'ur)
                  )
                )
              ) ;_ 防止属性为空是出错
          (progn
            (setq cp (mapcar '*
                             '(0.5 0.5 0.5)
                             (mapcar '+
                                     (vlax-safearray->list ll)
                                     (vlax-safearray->list ur)
                                     )
                             )
                  ) ;_ 计算属性中心点
            (vla-rotate
              att
              (vlax-3d-point cp)
              (- ang (vla-get-Rotation att))
              ) ;_ 旋转属性到UCS方向
            )
          (vla-rotate
            att
            (vla-get-InsertionPoint att)
            (- ang (vla-get-Rotation att))
            ) ;_ 旋转空属性到UCS方向
          )
        )
      )
    )
  (princ)
  )[/pcode]

点评

测试,可以达到要求。  发表于 2013-4-22 13:51

评分

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

查看全部评分

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

使用道具 举报

发表于 2013-4-22 13:13:51 | 显示全部楼层
这个问题我前段时间研究过,我是根据已有文字的角度得出我需要写出的文字角度,不管已有文字是属性还是参照内,是Ucs下还是Wcs下,演示如下:
test.gif

评分

参与人数 1D豆 +5 收起 理由
XDSoft + 5 资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-22 13:45:57 | 显示全部楼层
yx5277 发表于 2013-4-22 13:13
这个问题我前段时间研究过,我是根据已有文字的角度得出我需要写出的文字角度,不管已有文字是属性还是参照 ...

不错的演示,你可以找到属性文字的角度了。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:37 , Processed in 0.440780 second(s), 65 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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