找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1044|回复: 9

[日积月累]:每次比例输入很麻烦,我想把修改高宽比固定为0.7,请指教.

[复制链接]
发表于 2005-5-25 12:31:21 | 显示全部楼层 |阅读模式

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

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

×
每次比例输入很麻烦,我想把修改高宽比固定为0.7,请指教.


  1. (defun C:chhw();/ test ss len n en1 a oldr newr ent oldf nn)
  2.   (setvar "CMDECHO" 0)
  3.   (setq test T nn 0)
  4.   (while test
  5.     (setq ss (ssadd))
  6.     (setq ss (ssget))
  7.     (if (= nil ss)
  8.       (setq test nil)
  9.       (progn
  10.         (setq len (sslength ss))
  11.         (setq n 1 s 1)
  12.         (while (<= n len)
  13.           (setq en1 (ssname ss (1- n)))
  14.           (setq a (entget en1))
  15.           (if  (= "TEXT" (cdr (assoc 0 a)))
  16.             (progn
  17.               (if (= s 1)
  18.                 (progn
  19.                   (setq oldr (cdr (assoc 41 a)))
  20.                   (setq newr (getreal (strcat "\nNew width:high <" (rtos oldr 2 2) ">:")))
  21.                   (if (= newr nil) (setq newr oldr))
  22.                   (setq s nil)
  23.                 )
  24.               )
  25.               (setq ent (subst (cons 41 newr) (assoc 41 a) a))
  26.               (setq ent (subst (cons 72 0) (assoc 72 ent) ent))
  27.               (entmod ent)
  28.               (setq nn (1+ nn))
  29.             )
  30.           )
  31.           (setq n (1+ n))
  32.         )
  33.       )
  34.     )
  35.   )
  36.   (princ (strcat (itoa nn) " changed !"))
  37.   (princ)
  38. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-25 13:42:28 | 显示全部楼层
[php](load "xyp_lib");加载通用函数
;|
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
1.在acad.lsp中增加(load"xyp_lib")
2.在每个程序内增加(load"xyp_lib")
3.在command下,输入(load"xyp_lib")
4.在菜单.mnl中增加(load"xyp_lib")
通用函数下载地址:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
|;

;;;;;;;;;;;;;;;;;;;;;;;;;
;;;* 改换字宽------------
;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:GHZK ()
  (cmdla0)
  (princ "\n选择文本: ")
  (while (not (SETQ ss (ssget (LIST (cons 0 "text"))))))
  (setq        n  -1
        s1 (ssname ss 0)
  )
  (princ "\n旧宽度因子为 ")
  (princ (dxf 41 (entget S1)))
  (setq th (ureal 1 "" "\n新宽度因子为 " th))
  (princ "\n稍候")
  (princ)
  (while (setq s1 (ssname ss (setq n (1+ n))))
    (princ ".")
    (sub_upd s1 41 th)
  )
  (princ "OK!")
  (cmdla1)
)
(Princ "GHZK  (改换字宽)")
(princ)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-5-25 19:22:56 | 显示全部楼层
[php]
(defun C:chhw (/ test ss len n en1 a oldr newr ent oldf nn)
  (setvar "CMDECHO" 0)
  (setq        test T
        nn 0
  )
  (while test
    (setq ss (ssadd))
    (setq ss (ssget))
    (if        (= nil ss)
      (setq test nil)
      (progn
        (setq len (sslength ss))
        (setq n        1
              s        1
        )
        (while (<= n len)
          (setq en1 (ssname ss (1- n)))
          (setq a (entget en1))
          (if (= "TEXT" (cdr (assoc 0 a)))
            (progn
              (if (= s 1)
                (progn
                  (setq oldr (cdr (assoc 41 a)))
;;;(setq newr (getreal (strcat "\nNew width:high <" (rtos oldr 2 2) ">:")))
;;; (if (= newr nil) (setq newr oldr))
                  (setq newr 0.7)
                  (setq s nil)
                )
              )
              (setq ent (subst (cons 41 newr) (assoc 41 a) a))
              (setq ent (subst (cons 72 0) (assoc 72 ent) ent))
              (entmod ent)
              (setq nn (1+ nn))
            )
          )
          (setq n (1+ n))
        )
      )
    )
  )
  (princ (strcat (itoa nn) " changed !"))
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-25 20:35:04 | 显示全部楼层
[php]
(defun c:tt()
  (ssget '((0 . "TEXT")))
  (vlax-for x (vla-get-activeselectionset (vla-get-activedocument(vlax-get-acad-object)))
              (vla-put-ScaleFactor x 0.7)
  )(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-5-25 21:00:19 | 显示全部楼层
1 楼主程序中的废话太多
2 ActiveSelectionset 可能有CURRENT BUG,使用ActiveX建议用Vlax-map-collection代替Vlax-for,后者仅在调试时使用。

  1. (defun C:chhw (/ ss ssl e el)
  2.   (if (setq ss (ssget '((0 . "Text") (-4 . "/=") (41 . 0.7))))
  3.     (progn
  4.       (setq ssl (sslength ss))
  5.       (while (> ssl 0)
  6.         (setq e         (ssname ss (setq ssl (1- ssl)))
  7.               el (entget e)
  8.         )
  9.         (entmod (subst '(41 . 0.7) (assoc 41 el) el))
  10.       )
  11.     )
  12.   )
  13.   (princ)
  14. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-25 23:33:25 | 显示全部楼层
能否将带属性block的文字宽度也一并设置字宽?

以上仅适用公司带属性的图框,可能图框内某个字体超出方格,所以需要将超出的文字单独改成适合的文字宽度

程序应提供一个输入宽度值,然后点选需要改变的block里的文字,执行时将所有相同的block全部改成将的宽度值
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 05:43 , Processed in 0.192961 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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