明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 970|回复: 3

请求大侠留步,帮源码加一个“重新输入图层名”功能

[复制链接]
发表于 2015-5-27 21:16 | 显示全部楼层 |阅读模式
此命令提示”\n该图层已存在!"后就自动退出了
要求增加功能:提示”该图层已存在“后,请重新输入图层名

;;来自明经lyqiezi的新建图层                     
(defun c:NL()
        (setq lay_name (getstring "\n输入要新建的图层名称:"))
        (if (tblsearch "LAYER"  lay_name)
                (princ "\n该图层已存在!")
                (progn
                        (setq lay_cor (abs (cdr(assoc 62 (tblnext"layer" t)))))
                        (setq cor_list nil)
                        (while lay_cor
                                (setq cor_list (vl-list* lay_cor cor_list))
                                (if (setq lay_cor (cdr (assoc 62 (tblnext"layer"))))
                                        (setq lay_cor (abs lay_cor)))
                        )
                        (setq cor 1)
                        (while (member cor cor_list)
                                (setq cor (1+ cor))
                        )
                        (if (> cor 255)
                                (progn
                                        (princ "\n您的图层颜色过多,已按255色建层")
                                  (setq cor 255)))
                        (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") '(70 . 0) '(6 . "Continuous")(cons 62 cor)
                                        (cons 2 lay_name)
                                )
                        )
                        (command "clayer" lay_name)
                        (princ "\n已新建图层<<")
                  (princ lay_name)
                 (princ ">>并切换成当前图层")
                )
               
        )
        (prin1)
)

该贴已经同步到 冒个烟圈的微博
发表于 2015-5-28 19:01 | 显示全部楼层
本帖最后由 风流少年时 于 2015-5-28 19:04 编辑

  • (defun c:NL()
  •   (while(setq lay_name (getstring "\n输入要新建的图层名称:"))
  •     (if (tblsearch "LAYER"  lay_name)
  •       (princ "\n该图层已存在!")
  •       (progn
  •         (setq lay_cor (abs (cdr(assoc 62 (tblnext"layer" t)))))
  •         (setq cor_list nil)
  •         (while lay_cor
  •           (setq cor_list (vl-list* lay_cor cor_list))
  •           (if (setq lay_cor (cdr (assoc 62 (tblnext"layer"))))
  •             (setq lay_cor (abs lay_cor)))
  •         )
  •         (setq cor 1)
  •         (while (member cor cor_list)
  •           (setq cor (1+ cor))
  •         )
  •         (if (> cor 255)
  •           (progn
  •             (princ "\n您的图层颜色过多,已按255色建层")
  •             (setq cor 255)))
  •         (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") '(70 . 0) '(6 . "Continuous")(cons 62 cor)
  •             (cons 2 lay_name)
  •           )
  •         )
  •         (command "clayer" lay_name)
  •         (princ "\n已新建图层<<")
  •         (princ lay_name)
  •         (princ ">>并切换成当前图层")
  •       )
  •     )
  •   )
  •   (prin1)
  • )
发表于 2015-5-28 19:04 | 显示全部楼层
晕,不会弄这个排序······
发表于 2015-6-5 14:19 | 显示全部楼层
进来学习下~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-30 07:17 , Processed in 0.191081 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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