求助
高手幫我看一下﹐好嗎怎么才能將物件的資料改掉(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))
)
)
程序中“(while jjj
還是不能正常運行
您好﹐謝謝您的回復﹐我把程按您講的改了﹐但出現了" *** ERROR: bad argument type: lselsetp nil"這樣的錯誤﹐不知道還有什么地方錯了﹐
还有一些问题
首先,最后还少一个“)”,(COMMAND “INSERT 后的空格太多。出现这个问题的原因是你没有判断选择集是否为空,而你在运行时,如果没有选中文字,
则选择集为空,则后面的函数(setq nnn (entget kkk)) 则出现你说的错误。
對不起﹐我是一個初學者
謝謝您﹐那怎么寫﹐我不知道該怎么寫了﹐如果是英文字或數字﹐選擇集還會是空嗎帮你改了一下
本帖最后由 作者 于 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);静默退出
)
這里的文字要求
謝謝您的耐心教導被選擇的文字是不是必須是中文字才可以﹐那為什么文字的字高還不能變﹐
其實我的程式要起的作用是﹐當插入圖框后﹐圖框中的文字大小根據圖框的大小改變﹐我的思路是﹕1.框選圖形及文字尺寸﹐圖框根據所框選的大小進行調整 2.在框選的范圍中建立一個文字選擇集﹐3.一個一個修改選擇集中的文字高度
成功了﹐成功了
成功了﹐成功了﹐非常感謝你﹐可以修改了﹐因为现在文字有很多种,你可以在选择集中加上如“MTEXT”等,
謝謝您﹐非常感謝您的教導﹐
页:
[1]
2