找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 562|回复: 0

[求助] [LISP程序求助]:仅仅是缩放或平移一下视图,程序就出现未预期的另两种结果!

[复制链接]
发表于 2003-4-6 20:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我最近刚学的VisualLISP,在AutoCAD2002里的环境。我编了一个小程序,时而能运行,时而不能运行。不知道什么原因。
    我的思路是:通过用ssget得到一个块选择集,用ssname得到其图元名,用entget查询其组码得到插入点,再从此点用(ssget "C" (mapcar '+ ...) (mapcar '+ ...))得到在两对角点范围内的一条竖直线,再查询组码找到此直线的端点,再从此端点再次用(ssget "C" (mapcar '+ ...) (mapcar '+ ...))得到两对角点范围内的另一个块,再查询此块的组码得到其属性的值。出现的情况是程序刚刚还能正常工作,但当我用zoom命令执行视图放大、平移就出现错误:参数类型错误:stringp nil,有时又变成:参数类型错误:lselsetp nil 。
        我就搞不懂:为什么同一个程序在同一个环境下,仅仅是缩放或平移了一下视图就出现三种不同的执行结果。希赐教。万分感谢!!!


[B]问题简化为:假设图形中有一条直线,在其一个端点的90度方向12mm处有一个块(块内的图形通过该点),试用如下的表达式通过选择直线的端点来得到块的组码:
(entget (ssname (ssget (polar (getpoint "Give a point") ( / pi 2) 12) '((0 . "INSERT"))) 0) )
当图形缩放到在屏幕上占据较小的位置,但是还可以捕捉找到该直线的端点时,
语句的结果是:错误: 参数类型错误: lselsetp nil[/B]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 14:34 , Processed in 0.153135 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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