乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 125|回复: 9

[求助]為何出現錯誤?

[复制链接]

10

主题

22

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2004-9-6 22:13:00 | 显示全部楼层 |阅读模式
请大大帮忙看看,为何出现这样的错误讯息:损坏的引数类型: stringp nil
如果要将下列程序改为可复选,应如何修正?
(defun c:gt( / ent lname)
         (setvar "cmdecho" 0)         
         (setq counter 0)         
         (setq ent (entsel "\n选择要关闭的图层: "))
                         (if ent
                         (progn
                                         (setq e (ssname ss counter))                                 
                                         (setq ent (entget (car ent)))
                                         (setq lname (cdr (assoc 8 (entget e))))
                         )
                         (setq lname (getstring "\n未选取,请输入图层名: "))
         ) ;if ent
         (if (= (getvar "clayer") lname)
                         (setvar "clayer" "0")
         )
         (command "layer" "off" lname "")
         (setq counter (+ counter 1))
                                 (prompt (strcat "\n\t保留..." "\"" l "层" "\""))
                                 (princ)
         )
回复

使用道具 举报

31

主题

78

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
202
发表于 2004-9-7 08:26:00 | 显示全部楼层
(setq counter 0)         
(setq e (ssname ss counter))                错误!
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-9-7 08:34:00 | 显示全部楼层
这个程序有很多错误的地方呢.
(defun c:gt( / ent lname)
         (setvar "cmdecho" 0)         
         (setq counter "0")
         (setq ent (entsel "\n选择要关闭的图层:"))
                         (if ent
                         (progn
                                         (setq ent (entget (car ent)))
                                         (setq lname (CDR (ASSOC 8 ent)))
                         )
                         (setq lname (getstring "\n未未选取,请输入图层名: "))
         ) ;if ent
         (if (= (getvar "clayer") lname)
                         (setvar "clayer" "0")
         )
         (command ".layer" "off" lname "")
                                 (princ)
         )
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-9-7 08:37:00 | 显示全部楼层
楼上的提示错误的那句是多余的,而不是错误.
不知道楼主怎么运行过去的,竟然能到后面的一个错误地方?
(prompt (strcat "\n\t保留..." "\"" l "层" "\""))
这里的变量l从头到尾没有赋过值,导致楼主的错误提示
回复

使用道具 举报

10

主题

22

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2004-9-7 13:06:00 | 显示全部楼层
请问如何能复选?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-9-7 13:34:00 | 显示全部楼层
使用ssget函数选择
回复

使用道具 举报

10

主题

22

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
62
发表于 2004-9-7 20:55:00 | 显示全部楼层
我知道错在那了,谢谢大大,但请问大大,该如何强制关闭当前层?即使我选中的物件为当前层!(不是跳到o层哦),拜託各位大大囉!
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2004-9-7 21:07:00 | 显示全部楼层
(command "layer" "off" (getvar "clayer") "Y" "")
回复

使用道具 举报

5

主题

14

帖子

4

银币

初来乍到

Rank: 1

铜币
34
发表于 2004-9-7 23:56:00 | 显示全部楼层
(defun c:gt (/ ent lname)
         (setvar "cmdecho" 0)
         (prompt "\n选择要关闭的图层:")
         (setq ss (ssget))
         (setq counter 0)
         (repeat (sslength ss)
                         (setq ent (ssname ss counter))
                         (setq lname (cdr (assoc 8 (entget ent))))
                         (if        (= (getvar "clayer") lname)
                                         (command "_.layer" "off" lname "Y" "")
                                         (command "_.layer" "off" lname "")
                         )
                         (setq counter (+ counter 1))
         )
         (princ)
)
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-9-8 08:20:00 | 显示全部楼层

把你程序中的这句去掉就可以了,因为当前层是可以关闭的,不需要强制,跟关闭其它层一样
         (if (= (getvar "clayer") lname)
                         (setvar "clayer" "0")
         )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-19 22:45 , Processed in 4.367786 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表