iCAx开思网

标题: LISP问题: 使用炸开指令无法一次选择多个对象? [打印本页]

作者: genuine_wu    时间: 2005-3-1 15:33
标题: LISP问题: 使用炸开指令无法一次选择多个对象?
请各位大侠出手帮个忙
  
小弟想写一个LISP将很多线和图块炸开
  
程序如下
(command "explode" "" "")
^^^^^^^^^^^^^^^^^
己先用SELECT作选择
  
但是都会发生错误,MOVE和COPY都无此情况
  
请问如何解决,谢谢
作者: wayne    时间: 2005-3-2 00:25
能將前面的述句提列出來嗎?
作者: fmfeng    时间: 2005-3-2 09:20
可以将之前选的实体命名,多的话就做成集合。之后在写就变成了
(COMMAND "EXPLODE" 实体名称 "")
作者: genuine_wu    时间: 2005-3-2 11:14
wayne 兄,请看
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(DEFUN C:tt1()
  
(setq pt1(getpoint "point1?"))
(setq pt2(getcorner pt1 "point2?"))
(command "COPY" pt1 pt2 "" "0,0" "100,100" "")
(command "EXPLODE" "" "" )  ;<---无效
  
)
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmfeng  兄
您说那方法我也试过了,对"explode"无效
头晕中.
作者: genuine_wu    时间: 2005-3-2 11:27
再请问一个问题,
在lisp中如何呼叫别人所写的lisp程序
  
如直接用command会发生如下情况
(command  “lisp-program” )
-> Unknown command " lisp-program "
  
该如何解决?
谢谢.
作者: whitecloud    时间: 2005-3-2 11:27
EXPLODE 指令執行後
不是就可以框選了?
幹麻還要特別寫LISP??
作者: genuine_wu    时间: 2005-3-2 11:41
这样的话
框选要再另外设定范围,
不能随意的移动对象
而且也怕选到不需处理的东西
作者: wayne    时间: 2005-3-2 13:53
改寫一下程序如下:
  
(DEFUN C:tt1()  
  
(setq ss1(ssget))   
(command "COPY" ss1 "" "0,0" "100,100")
(command "EXPLODE" ss1) ;<---?效  
  
)
作者: genuine_wu    时间: 2005-3-2 15:13
我成功了,感谢wayne兄
这方法我之前有试过,
但只能explode “某一”物件
但wayne 提醒我用另一种方法
修改如下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(DEFUN C:tt1()  
  
  (setq ss1(ssget))  
  (command "COPY" ss1 "" "0,0" "100,100")  
  (repeat(sslength ss1)
  (command "EXPLODE" ss1 )
  )
)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
再问一个问题,  
在lisp中如何呼叫别人所写的lisp程序  
  
如直接用command会发生如下情况  
(command “lisp-program” )  
-> Unknown command " lisp-program "  
  
请问该如何解决? 谢谢
作者: wayne    时间: 2005-3-2 16:31
1. 我還是不解, 為何還需用repeat迴圈, 作explode.
  
2.(load "lisp-program")
作者: genuine_wu    时间: 2005-3-2 18:10
1.这是没有办法的办法了,我想...
好像EXPLODE不支持在LISP中的多对象处理,
所以不管如何一次只能炸一个对象,用选集也一样
  
2.wayne兄,
我指的是如EXPRESS般的lisp程序
如:
layon(turn all layers on)在命令列下指令可以正确执行
用LISP却叫不出来
结果如下:
command : (command "layon" )  
-> Unknown command " layon "
作者: wayne    时间: 2005-3-3 00:20
(command)->僅支援AutoCAD內部指令, 呼叫Lisp程序, 需用副函數, (c:layon)試試看, 我沒裝express.
作者: genuine_wu    时间: 2005-3-3 13:08
解决了
非常感谢热心帮助!!





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3