明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2709|回复: 7

:(,这个问题怎么解决呢?“提示:AutoCAD命令嵌套不能超过4次”。。

[复制链接]
发表于 2003-4-5 17:16:00 | 显示全部楼层 |阅读模式
下面的程序自动执行完前三个命令,但到dview命令时报错:AutoCAD命令嵌套不能超过4次,接着自动从AutoCAD中跳出,我该如何修改下面的程序呢?谢谢指点
(defun c:ft()
  (command "_rotate3d" "all"  "" "z" "" "-45" "")
  (command "_rotate3d" "all" "" "x" "" "-55" "")
  (command "_copy" "all" "" "0,0,0"  "70,0,0" "")
(command "_dview" "all" "" "po" "35,0,0" "" "35,0,300" "" "d" "" "")
)
 楼主| 发表于 2003-4-6 09:06:00 | 显示全部楼层

真不知怎么办好:4行程序每行都可单独执行,但4句一起就出错。

真不知怎么办好:下面4行程序每行都可单独执行,但4句一起就出错。有时认不出rotate3d命令,有时说AutoCAD命令嵌套不能超过4层,怎么办才好呢??(defun c:ft2()
  (command "rotate3d" "all"  "" "z" "" "-45" "")
  (command "_rotate3d" "all" "" "x" "" "-55" "")
  (command "_copy" "all" "" "0,0,0"  "70,0,0" "")
  (command "_dview" "all" "" "po" "35,0,0" "35,0,300" "d" "" "")
)
发表于 2003-4-6 17:09:00 | 显示全部楼层

rotate3d是外部定义命令,不能象内部定义命令那样用,查看帮助函数(rotatd3d...)

 楼主| 发表于 2003-4-7 09:25:00 | 显示全部楼层

下面这些就是rotate3d的帮助文件(第二部分),从这里我看不出定义

下面这些就是rotate3d的帮助文件(第二部分),从这里我看不出定义外部命令和内部命令有什么区别啊?不过我倒是发现:如果先在命令行手工用一次rotate3d命令,那么lisp程序中的rotate3d语句就可以执行了。但不知如何修改才能定义该内部命令呢?请高手帮我改改这个程序(第一部分),谢谢!
(一)
(defun c:ft2()
  (command "rotate3d" "all"  "" "z" "" "-45" "")
  (command "_rotate3d" "all" "" "x" "" "-55" "")
  (command "_copy" "all" "" "0,0,0"  "70,0,0" "")
  (command "_dview" "all" "" "po" "35,0,0" "35,0,300" "d" "" "")
)

(二)
命令行:rotate3d

选择对象:  使用一种对象选择方式并按 ENTER 键完成选择

指定轴上的第一个点或定义轴依据 [对象(O)/最近的(L)/视图(V)/X 轴(X)/Y 轴(Y)/Z 轴(Z)/两点(2)]:  指定一点、输入一个选项或按 ENTER 键

选项:

第一点,两点
对象
最近的
视图
X 轴/Y 轴/Z 轴
发表于 2003-4-7 10:26:00 | 显示全部楼层

It works properly in my AutoCAD 2002

发表于 2003-4-7 10:47:00 | 显示全部楼层

为甚么会看不懂说明????它不是说得很清楚了吗????

以下Autocad帮助文件

相对于任意 3D 轴旋转对象(外部定义: geom3d ARX 应用程序)
(rotate3d args ...)

自变量

args

rotate3d 函数的顺序、数目及自变量类型与您在指令行输入该指令者相同;请参阅 ROTATE3D (在「指令参考手册」中)以取得更多的信息。
要表示空的响应 (使用者未指定任何值,按下 ENTER 键),请使用 nil 或空字符串 ("")。

传回值
如果成功,rotate3d 传回 T;否则它会传回nil。
范例
下列的范例以 p1 和 p2 指定的轴将选取的对象旋转 30 度。

(setq ss (ssget))

(rotate3d ss p1 p2 30)

AutoLISP 支持的 rotate3d 函数,使用 SAGET 资源库来实行。


为甚么会看不懂说明????它不是说得很清楚了吗????

(defun C:FT2 (/ SS)
  (arxload "geom3d.ARX" NIL)
  (setq SS (ssget "X"))
  (rotate3d SS '(0 0 0) '(0 0 1) -45)
  (rotate3d SS '(0 0 0) '(1 0 0) -55)
  (command "_copy" "all" "" "0,0,0" "70,0,0")
  (command "_dview" "all" "" "po" "35,0,0" "35,0,300" "d" "" "")
  (princ)
)
 楼主| 发表于 2003-4-7 12:33:00 | 显示全部楼层

:(,多谢龙大侠了,我前面是不清楚外部和内部定义命令的区别,以前没这样试过。

发表于 2013-1-1 23:33:48 | 显示全部楼层
   好,龙版主的回答精辟
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-2 16:39 , Processed in 0.182389 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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