找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 725|回复: 9

[求助] [求助]:尺寸中DIMSCALE的组码是多少

[复制链接]
发表于 2004-7-30 15:24:59 | 显示全部楼层 |阅读模式

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

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

×
请教各位,尺寸中变量DIMSCALE的组码是多少?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-30 15:27:38 | 显示全部楼层
vla-get-scalefactor
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-30 15:44:09 | 显示全部楼层
我不会VLISP,现在我想将图中的尺寸修改全局比例(dimscale),但不改变标注比例,
可以用lisp编程实现吗?
用VLISP是不是很简单
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-7-31 09:20:18 | 显示全部楼层
[php]
(defun c:tt  (/ el oldDimscale newDimscale xdata)
  (setq el (entget (car (entsel "\n选择尺寸:")) '("ACAD")))
  (setq        oldDimscale
         (cdr (assoc 1040 (setq xdata (cdadr (assoc -3 el))))))
  (princ "\n新的Dimscale <")
  (princ oldDimscale)
  (setq newDimscale (getreal ">: "))
  (if (and (/= nil newDimscale) (/= oldDimscale newDimscale))
    (progn
      (setq
        el
         (subst        (cons -3
                      (list
                        (cons "ACAD"
                              (subst (cons 1040 newDimscale)
                                     (assoc 1040 xdata)
                                     xdata))))
                (assoc -3 el)
                el))
      (entmod el)
      )
    )
  (princ)
  )
;;;ActiveX 方法直接多了
(defun c:ttax  (/ dimobj oldDimscale newDimscale)
  (vl-load-com)
  (setq        dimobj            (vlax-ename->vla-object (car (entsel "\n选择尺寸:")))
        oldDimscale (vla-get-ScaleFactor dimobj))
  (princ "\n新的Dimscale <")
  (princ oldDimscale)
  (setq newDimscale (getreal ">: "))
  (if (and (/= nil newDimscale) (/= oldDimscale newDimscale))
    (vla-put-ScaleFactor dimobj newDimscale))
  (princ)
  )
;;直接用AutoCAD命令, 有点啰嗦
(defun c:ttcad        (/               el             en
                 oldDimscale   newDimscale   DimstyleHold
                 DimscaleHold  cmdEchoHold   dimstyle)
  (setq el (entget (setq en (car (entsel "\n选择尺寸:"))) '("ACAD")))
  (setq dimstyle (cdr (assoc 3 el)))
  (setq        oldDimscale
         (cdr (assoc 1040 (setq xdata (cdadr (assoc -3 el))))))
  (princ "\n新的Dimscale <")
  (princ oldDimscale)
  (setq newDimscale (getreal ">: "))
  (if (and (/= nil newDimscale) (/= oldDimscale newDimscale))
    (progn
      (setq DimstyleHold (getvar "DIMSTYLE"))
      (setq DimscaleHold (getvar "DIMSCALE"))
      (setq cmdEchoHold (getvar "CMDECHO"))
      (setvar "CMDECHO" 0)
      (command "-dimstyle" "r" dimstyle)
      (setvar "DIMSCALE" newDimscale)
      (command "-dimstyle" "a" en "")
      (command "-dimstyle" "r" DimstyleHold)
      (setvar "DIMSCALE" DimscaleHold)
      (setvar "CMDECHO" cmdEchoHold)
      )
    )
  (princ)
  )
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-8-1 23:06:05 | 显示全部楼层
最初由 aidraft 发布
[B]
(defun c:tt  (/ el oldDimscale newDimscale xdata)
  (setq el (entget (car (entsel "\n选择尺寸:")) '("ACAD")))
  (setq        oldDimscale
         (cdr (assoc 1040 (setq xdata (cdadr (assoc -3 el))))))
... [/B]

第一个程序tt。
应该用(1070 . 40)判断.否则如果无标注替代,会改到别的替代数据.
第二个程序,ok。
第三个程序。
用cad命令怎么会罗嗦呢?另,你的cad命令方法会屏蔽掉原来已经有的标注样式替代。
用cad命令:
[php]
(defun c:dimsc ()
  (setvar "cmdecho" 1)
  (vl-cmdf ".dimoverride" "dimscale" pause "");;pause可用(getreal)代替
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-7 14:22:37 | 显示全部楼层
下面编码是某个尺寸部分信息(100 . "AcDbRotatedDimension") (-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 144) (1040 . 8.0) (1070 . 40) (1040 . 7.0) (1070 . 176) (1070 . 1) (1070 . 177) (1070 . 1) (1070 . 178) (1070 . 3) (1002 . "}"))))
请高手解释一下(1070 . 144) (1040 . 8.0) (1070 . 40) (1040 . 7.0) (1070 . 176) (1070 . 1) (1070 . 177) (1070 . 1) (1070 . 178) (1070 . 3) 每个括号中含义,以及如何提取和更改。我发现里面的8.0是线性比例因子,7.0是全局比例因子,那么其余的呢,还有就是怎样提取和更改呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 11:58 , Processed in 0.186963 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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