yenbl 发表于 2010-5-17 14:12:00

請教LISP內REFEDIT的問題

<p>不知是那裡錯,無法執行</p><p>我要把圖塊內的LINE都刪除</p><p>拜託...謝謝...</p><p>&nbsp;(setq aaa (ssget "x" (list (cons 0 "insert"))))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;(setq lis (sslength aaa))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;(setq i 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;(repeat lis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; (setq ename (ssname aaa i))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; (command "refedit" ename "o" "" "")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; (command "erase" (ssget "x" (list (cons 0 "line"))) "") <br/>&nbsp;&nbsp; (command "refclose" "s")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; (setq i (+ 1 i))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

caoyin 发表于 2010-5-17 14:54:00

;;删除块内直线
(defun c:bbb (/ Blocks)
(setq Blocks (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))))
(vlax-for block blocks
(if (= (vla-get-IsLayout block) :vlax-FALSE)
    (vlax-for object block
      (and (= (vla-get-objectname object) "AcDbLine")
         (vla-delete object))
    )
)
)
)

yenbl 发表于 2010-5-17 17:48:00

<p>謝謝...謝謝...</p><p>看了大哥您寫的程式</p><p>我還要好好努力</p><p>我在台灣,聽說兩岸有些稱呼不太一樣</p><p>稱您大哥應該不會失禮吧(在我們這邊是尊敬的表達)</p><p>我在LISP書上好像沒看到您所用的語法</p><p>是LISP嗎?</p>

yenbl 发表于 2010-5-17 17:56:00

我的AUTOCAD是2005

<p>我的AUTOCAD是2005</p><p>剛剛我試執行好像有問題</p><p>; 錯誤: no function definition: VLAX-GET-ACAD-OBJECT</p><p>不知是什麼問題</p>

mccad 发表于 2010-5-17 18:12:00

请先使用(vl-load-com)函数以加载这些函数。这属于Visual LISP范畴。

caoyin 发表于 2010-5-18 14:07:00

yenbl发表于2010-5-17 17:48:00static/image/common/back.gif謝謝...謝謝...看了大哥您寫的程式我還要好好努力我在台灣,聽說兩岸有些稱呼不太一樣稱您大哥應該不會失禮吧(在我們這邊是尊敬的表達)我在LISP書上好像

yenbl 发表于 2010-5-22 12:30:00

我不會加載(vl-load-com)函数...

<p>大哥我不會加載(vl-load-com)函数</p><p>可以告訴我程式碼怎麼寫嗎?</p><p>拜託...拜託...</p>

caoyin 发表于 2010-5-22 12:53:00

;;删除块内直线
(defun c:bbb (/ Blocks)
(vl-load-com)
(setq Blocks (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))))
(vlax-for block blocks
(if (= (vla-get-IsLayout block) :vlax-FALSE)
    (vlax-for object block
      (and (= (vla-get-objectname object) "AcDbLine")
         (vla-delete object))
    )
)
)
)怪了!!!

yenbl 发表于 2010-5-22 13:44:00

謝謝...

謝謝...
页: [1]
查看完整版本: 請教LISP內REFEDIT的問題