找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 曹杰

[编程申请](完成):哪位高手能不能用lisp解决CAD尺寸文字翻转的问题

[复制链接]
发表于 2005-1-16 01:13:01 | 显示全部楼层

Re: [编程申请]:哪位高手能不能用lisp解决CAD尺寸文字翻转的问题

最初由 曹杰 发布
[B]在CAD的ucs坐标下标注的尺寸文字,当标注的尺寸文字在恢复到世界坐标系后,发现尺寸文字的方向反了,在CAD中又不知道怎样去翻转尺寸文字,请lisp高手们看看能不能用lisp程序解决,谢谢 [/B]


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

使用道具 举报

发表于 2005-1-16 10:29:38 | 显示全部楼层
当ucs与wcs有一定角度的时候,在ucs下标注后,再转到wcs就会出现这样的情况
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-16 12:20:58 | 显示全部楼层
我贴的图是旋转ucs坐标后的图。eachy版主的程序很好用,谢谢各位帮助
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-16 15:43:00 | 显示全部楼层
最初由 eachy 发布
;|
  功能:尺寸标注文字翻转
|;
(defun c:ea:DIMTxtRev (/ ss ang ssl e lst)


eachy使用dxf51是极好的方法,但直接将组码改为0或pi破坏了demension的ocs,建议改为+pi或-pi,这样原有的ocs得以保留。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-17 00:29:39 | 显示全部楼层
最初由 狂刀 发布
[B]讨论:用if语句对ang进行判断是没有意义的 [/B]


不是很明白你所说的无意义是指什么?
这里的角度是指dxf51,改变了dxf51就可以改变标注文字的方向
下面附上dxf51的帮助原文:
所有标注类型均有可选的 51 组码,表示标注图元的水平方向。标注图元决定水平、垂直和旋转线性标注的标注文字和直线的方向
该组值是 OCS X 轴和 UCS X 轴之间的负角度。它始终位于 OCS 的 XY 平面上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-17 07:48:41 | 显示全部楼层
我的意思是:因为"该组值是 OCS X 轴和 UCS X 轴之间的负角度。它始终位于 OCS 的 XY 平面上 ",因此仅仅用dxf51和PI的倍数比是不充分的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-17 10:19:58 | 显示全部楼层
最初由 狂刀 发布
[B]我的意思是:因为"该组值是 OCS X 轴和 UCS X 轴之间的负角度。它始终位于 OCS 的 XY 平面上 ",因此仅仅用dxf51和PI的倍数比是不充分的。 [/B]


我终于明白狂刀的意思了!狂刀是对的!
以下几种情况,程序出错。
1。现在对ang逻辑判断,是基于在wcs下完成并出图的,但当用户需要在特定的ucs下出图,上述判断就错了。
2。当标注旋转后,dxf51并不变,程序的判断又会出错。
3。不仅要考虑hor线形标注,还要考虑ver线形标注。
试试下面这张图,就明白我的意思了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-18 01:59:39 | 显示全部楼层
23楼的dwg文件,上传供大家测试
在eachy的程序基础上简单增加了一些内容,还未完全满足要求。
[PHP]
;|
  功能:尺寸标注文字翻转
|;
(defun c:dr (/ ss ang50 ang51 ssl e lst)
  (while (progn
           (prompt "\n请选取要翻转文字方向的尺寸标注 <退出>: ")
           (setq ss (ssget '((0 . "DIMENSION"))))
         )
    (setq ssl (sslength ss))
    (command ".undo" "g")
    (while (> ssl 0)
      (setq e          (ssname ss (setq ssl (1- ssl)))
            lst          (entget e)
            ang50 (cdr (assoc 50 lst))
            ang51 (cdr (assoc 51 lst))
      )
      (cond
        ((equal (rem (+ ang50 ang51) pi) 0 0.001)
         (entmod
           (subst (cons        51
                        (cond ((and (>= ang51 (* pi 0.5)) (< ang51 pi)) (+ ang51 pi))
                              ((and (>= ang51 pi) (< ang51 (* pi 1.5))) (- ang51 pi))
                              (T ang51)
                        )
                  )
                  (assoc 51 lst)
                  lst
           )
         )
        )
        ((equal (rem (+ ang50 ang51) pi) (/ pi 2) 0.001)
         (entmod
           (subst (cons        51
                        (cond ((and (>= ang51 pi) (< ang51 (* pi 2))) (- ang51 pi))
                              (T ang51)
                        )
                  )
                  (assoc 51 lst)
                  lst
           )
         )
        )
      )
    )
    (command "undo" "end")
  )
  (princ)
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2005-1-20 00:08:59 | 显示全部楼层
最初由 梦断江南 发布
[B]我觉得程序中要用上当前ucs的转角,加上标注线的角度 [/B]

对,我现在就是打算从这两点着手的
对于图纸空间,因为需要,有可能存在各种不同的ucs。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-1-20 14:06:35 | 显示全部楼层
  俺用的TSSD中有此功能。是否在楼上几位说的那种情况下有问题, 不知道,反正俺也用不到那么复杂的情况。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 21:17 , Processed in 0.189394 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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