明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2803|回复: 10

求助

[复制链接]
发表于 2003-2-22 16:24:00 | 显示全部楼层 |阅读模式
高手幫我看一下﹐好嗎怎么才能將物件的資料改掉

(defun c:TKFOUR ()
          (graphscr)
        (setq AAA (getpoint "\n first point:"))
        (setq BBB (getcorner AAA "\n Second point: "))
        (setq CCC (distance AAA BBB))
          (SETQ ddd 80)
          (SETQ eee (/ CCC ddd))
          (SETQ fff (findfile "A4.dwg"))  
          (command "insert" fff AAA eee eee "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "")
        (SETQ hhh (ssget "W" AAA BBB '((0 . "text"))))
          (SETQ mmm (sslength hhh))
          (setq ppp (* 2.5 CCC))
        (setq ooo (/ PPP 80))

        (setq jjj 1)
        (while jjj <= mmm
          (setq kkk (ssname hhh jjj))
          (setq nnn (entget kkk))
          (setq nnn (subst (cons 40 ooo) (assoc 40 nnn) nnn))
          (entmod nnn)
          (entupd kkk)
          (setq jjj (1+ jjj))
         )


  
  

)
发表于 2003-2-22 18:48:00 | 显示全部楼层

程序中“(while jjj

 楼主| 发表于 2003-2-24 09:16:00 | 显示全部楼层

還是不能正常運行

您好﹐謝謝您的回復﹐
我把程按您講的改了﹐但出現了" *** ERROR: bad argument type: lselsetp nil"這樣的錯誤﹐不知道還有什么地方錯了﹐
发表于 2003-2-24 09:53:00 | 显示全部楼层

还有一些问题

首先,最后还少一个“)”,(COMMAND “INSERT 后的空格太多。
出现这个问题的原因是你没有判断选择集是否为空,而你在运行时,如果没有选中文字,
则选择集为空,则后面的函数(setq nnn (entget kkk)) 则出现你说的错误。
 楼主| 发表于 2003-2-24 10:41:00 | 显示全部楼层

對不起﹐我是一個初學者

謝謝您﹐那怎么寫﹐我不知道該怎么寫了﹐如果是英文字或數字﹐選擇集還會是空嗎
发表于 2003-2-24 16:08:00 | 显示全部楼层

帮你改了一下

本帖最后由 作者 于 2003-2-24 16:08:00 编辑

几个地方做了改动,但还是须保证你a4.dwg必须存在,而且有文字被选中,否则,虽然不会出现你那样的错误,但其实还是一样,什么也没做就退出了

(defun c:TKFOUR ()
   (graphscr)
(setq AAA (getpoint "\n first point:"))
(setq BBB (getpoint AAA "\n Second point: "))
(setq CCC (distance AAA BBB))
   (SETQ ddd 80)
   (SETQ eee (/ CCC ddd))
  (if(not (SETQ fff (findfile "A4.dwg")))
    (exit)
    )  ;判断A4.DWG是否存在(要在AUTOCAD的搜索路径里面),否则退出
   (command "insert" fff AAA eee eee "")
(if (not (SETQ hhh (ssget "W" AAA BBB '((0 . "text")))))
  (exit)
  );判断是否有东西选中,否则退出
   (SETQ mmm (sslength hhh))
   (setq ppp (* 2.5 CCC))
(setq ooo (/ PPP 80))

(setq jjj 0) ;选择集的索引从0开始
(while (< jjj mmm)
  (setq kkk (ssname hhh jjj))
  (setq nnn (entget kkk))
  (setq nnn (subst (cons 40 ooo) (assoc 40 nnn) nnn))
  (entmod nnn)
  (entupd kkk)
  (setq jjj (1+ jjj))
)
(princ);静默退出
  )
 楼主| 发表于 2003-2-25 09:48:00 | 显示全部楼层

這里的文字要求

謝謝您的耐心教導
被選擇的文字是不是必須是中文字才可以﹐那為什么文字的字高還不能變﹐
其實我的程式要起的作用是﹐當插入圖框后﹐圖框中的文字大小根據圖框的大小改變﹐我的思路是﹕1.框選圖形及文字尺寸﹐圖框根據所框選的大小進行調整 2.在框選的范圍中建立一個文字選擇集﹐3.一個一個修改選擇集中的文字高度
 楼主| 发表于 2003-2-25 09:54:00 | 显示全部楼层

成功了﹐成功了

成功了﹐成功了﹐非常感謝你﹐可以修改了﹐
发表于 2003-2-25 10:05:00 | 显示全部楼层

因为现在文字有很多种,你可以在选择集中加上如“MTEXT”等,

 楼主| 发表于 2003-2-26 15:01:00 | 显示全部楼层

謝謝您﹐非常感謝您的教導﹐

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 05:55 , Processed in 0.155963 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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