明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2099|回复: 7

[求助]"此对象不能定义坐标系",是为什么?

[复制链接]
发表于 2004-3-31 15:02:00 | 显示全部楼层 |阅读模式
我的程序里面,有一段是下面的,刚打开CAD一定是可以运行的,可是第二遍的时候,却总是说“此对象不能定义坐标系”,我用LINE画好了,再用(entlast)保存,有问题吗?

(while (< n lenbar)
(command "ucs" "d" "*")
(command "ucs" "s" "mo")
(setq bar (car (nth n listbar)))
(setq jd1 (cadr (nth n listbar)))
(setq jd2 (caddr (nth n listbar)))
(setq pt1 (nth (- jd1 1) listjd))
(setq pt2 (nth (- jd2 1) listjd))
(setq len (distance pt1 pt2))
(if (= ww nil)
(setq ww (/ len wbar))
)
(command "layer" "m" "bar" "C" 3 "bar" "")
(command "_.pline" pt1 "w" 0 0 pt2 "")
(setq ss1 (entlast))
(command "ucs" "n" "ob" (entlast)) (setq pt3 (nth 3 (nth (1- bar) listfor)))
(setq pt3 (list 0 (/ pt3 b1)))
(setq pt4 (nth 7 (nth (1- bar) listfor)))
(setq pt4 (list len (- 0 (/ pt4 b1))))
(setq pt1 (list 0 0))
(setq pt2 (list len 0))
(command "layer" "m" "moment" "C" 7 "moment" "")
(command "_.pline" pt1 "w" 0 0 pt3 pt4 pt2 "")
(setq ss2 (entlast))
(command "_.hatch" "line" bhat "90" ss1 ss2 "") (command "ucs" "r" "mo")
(setq n (1+ n))
)
发表于 2004-3-31 16:53:00 | 显示全部楼层
你可先檢查看看(ENTLAST)是甚麼?
程序不全貼上,能解決問題嗎?
 楼主| 发表于 2004-3-31 18:19:00 | 显示全部楼层
(command "_.pline" pt1 "w" 0 0 pt2 "")
然后(entlast)不就是画的pline吗? 而且第一遍可以,第二遍就不行了。。。
发表于 2004-3-31 18:48:00 | 显示全部楼层
问题是你的(command "_.pline" ...)画出了pline了吗?没有完整的程序,无法知道这些参数是否有问题(稍微看了一下程序,你跟踪一下listfor,看是否正确) 另, (setq ss1 (entlast))
(command "ucs" "n" "ob" (entlast))
这里的command为什么不直接使用已经保存的ss1,还有在使用一次(entlast)?
 楼主| 发表于 2004-3-31 20:18:00 | 显示全部楼层
后面还用(entlast),是因为我在实验,不知道用(entlast)后,还需不需要打回车“”
刚才试了一下,画了2次,第三次的时候不行了。。。除非建立一个新的图形。。 fread.lsp程序
读取的数据文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2004-3-31 20:33:00 | 显示全部楼层
请斑竹跟各位大虾们一定要帮忙看看,我的头都晕了~~谢谢~~
发表于 2004-3-31 20:52:00 | 显示全部楼层
本帖最后由 作者 于 2004-4-1 8:31:01 编辑

让你查一下出错的那个(entlast)是什么,你就是不查。。。总觉得它是条PLINE,由于OSNAP的关系,他已经成一个点了,所以建立坐标系出错了。。。使用此程序时要将捕捉关掉。。。 另,对于那两行红字的问题,你说的理由似乎跟我说的问题没有关系吧,跟要不要回车有什么关系?既然已经将(entlast)赋给ss1了,那ss1就完全可以代替(entlast)了,还要用一次(entlast)做什么?将程序里if那句改为如下,你自己看看这个问题是怎么回事吧: (setq ss1 (entlast)) (if ss1
(command "ucs" "n" "ob" ss1)
);(觉得这里的if好象根本没有必要,如果为nil,那表示图中没有任何对象了,那你的整个程序就已经瘫痪了)
 楼主| 发表于 2004-4-1 13:47:00 | 显示全部楼层
非常感谢,鲜花一朵献上~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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