明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wpizi

[求助]高手快来!!!lisp急!!!!

  [复制链接]
 楼主| 发表于 2004-3-24 20:04:00 | 显示全部楼层
我是在一个程序里加载的,但将其卸载却错误! 先(ARXLOAD "GEOM3D") 后(ARXUNLOAD "GEOM3D")为什么这样不行?

 楼主| 发表于 2004-3-25 15:38:00 | 显示全部楼层
我在一个程序里写了(ARXLOAD         "GEOM3D")         后可以自动加载该文件,但是第二次加载程序就提示(ARXLOAD         "GEOM3D")         失败,必须重新启动cad,这是为什么?
发表于 2004-3-25 15:45:00 | 显示全部楼层
不为什么,已经加载了,再加载,多余或者说冲突,就象两个同名的块一样
 楼主| 发表于 2004-3-25 22:32:00 | 显示全部楼层
谢谢斑竹!!!


为什么用(ARXUNLOAD         "GEOM3D")不能卸载了?
发表于 2004-3-26 08:16:00 | 显示全部楼层
我试了,可以的啊
 楼主| 发表于 2004-3-26 10:24:00 | 显示全部楼层
我用lisp编了一个三维实体,每个子程序运行很好,但主程序运行时cad就报错:


“致命错误:命令嵌套深度不能超过四层!” 这是什么意思?
发表于 2004-3-26 10:45:00 | 显示全部楼层
命令嵌套深度不能超过四层就像if语句中套if语句不能不能超过六层一样,把其中的语句想办法移出到嵌套外面,有太多嵌套语句的程序本身也不太可读。再不行时发到上面来,有这么多高手在,还怕帮你搞不定?!!
发表于 2004-3-26 10:53:00 | 显示全部楼层

(如用(COMMAND “ROTATE3D”….)会有你说的“致命错误:命令嵌套深度不能超过四层!”

这类外部定义的指令,要用下列

相对于任意 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 资源库来实行。

 楼主| 发表于 2004-3-26 11:12:00 | 显示全部楼层
下面这个程序单独运行可以,但放入主程序就不行啦!我刚学lisp,我也搞不清那些命令嵌套深度不能超过4层,好多不懂,请各位高手帮我改改,谢谢 (defun c:qiao()
(setvar "cmdecho" 0)
(setq w0 (getreal "\n输入厚度w0:")) ;w0=200
(setq r0 (getreal "\n截头圆锥上部半径r0=")) ;r0=3500
(setq pt0 (getpoint "\n输入一点:"))
(setq d0 (getreal "\n输入d0=")) ;d0=1000
(setq pt08 (polar pt0 (/ pi 2) 7975))
(setq pt081 (polar pt08 0 (+ r0 w0 w0 300)))
(setq pt082 (polar pt081 (* pi 0.5) (+ (/ d0 2) 10 50)))
(setq pt083 (polar pt081 (* pi 1.5) (+ (/ d0 2) 10 50)))
(setq pt084 (polar pt083 pi (* (+ r0 w0 w0 300) 2)))
(setq pt085 (polar pt082 pi (* (+ r0 w0 w0 300) 2)))
(command "pline" pt082 pt083 pt084 pt085 pt082 "")
(setq qa0 (entlast))
(command "extrude" qa0 "" -80 "")
(setq qa01 (entlast))
(command "circle" pt08 (+ (/ d0 2) 10))
(setq qc0 (entlast))
(command "extrude" qc0 "" -80 "")
(setq qc1 (entlast))
(command "subtract" qa01 "" qc1 "")
(setq qc00 (entlast))
(setq pt086 (polar pt082 (* pi 1.5) 50))
(setq pt087 (polar pt086 pi 80))
(setq pt088 (polar pt087 (* pi 0.5) 50))
(command "pline" pt082 pt086 pt087 pt088 pt082 "")
(setq lg00 (entlast))
(command "extrude" lg00 "" 700 "")
(setq lg01 (entlast))
(command "array" lg01 "" "r" 2 5 (- 0 (+ 20 50 d0)) (- 0 (/ (* 2 (+ r0 w0)) 4)) "")
(setq lg02 (entnext lg01))
(setq lg03 (entnext lg02))
(setq lg04 (entnext lg03))
(setq lg05 (entnext lg04))
(setq lg06 (entnext lg05))
(setq lg07 (entnext lg06))
(setq lg08 (entnext lg07))
(setq lg09 (entnext lg08))
(setq lg10 (entnext lg09))
(command "union" qc00 lg01 lg02 lg03 lg04 lg05 lg06 lg07 lg08 lg09 lg10 "")
(setq qc2 (entlast))
(command "rotate3d" qc2 "" pt08 pt081 -90 "")
(setq qc (entlast))
(setq pt09 (polar pt0 (/ pi 2) 8675))
(setq pt091 (polar pt09 0 (+ r0 w0 w0 300)))
(setq pt092 (polar pt091 (/ pi 2) (+ (/ d0 2) 10 50)))
(setq pt093 (polar pt092 (* pi 1.5) 50))
(setq pt094 (polar pt093 pi (* (+ r0 w0 w0 300) 2)))
(setq pt095 (polar pt092 pi (* (+ r0 w0 w0 300) 2)))
(command "pline" pt092 pt093 pt094 pt095 pt092 "")
(setq fs00 (entlast))
(setq pt096 (polar pt091 (* pi 1.5) (+ (/ d0 2) 10 50)))
(setq pt097 (polar pt096 (/ pi 2) 50))
(setq pt098 (polar pt097 pi (* (+ r0 w0 w0 300) 2)))
(setq pt099 (polar pt096 pi (* (+ r0 w0 w0 300) 2)))
(command "pline" pt096 pt097 pt098 pt099 pt096 "")
(setq fs01 (entlast))
(command "extrude" fs00 "" 80 "")
(setq fs1 (entlast))
(command "extrude" fs01 "" 80 "")
(setq fs2 (entlast))
(command "union" fs1 fs2 "")
(setq fs0 (entlast))
(command "rotate3d" fs0 "" pt09 pt091 90 "")
(setq fs (entlast))
(command "union" qc fs "")
(prin1)
)
发表于 2004-3-26 11:16:00 | 显示全部楼层
怎么不先改用18楼的方法试试,看是否还有此问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 17:28 , Processed in 0.164631 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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