明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1351|回复: 6

[提问] 各位大神帮忙整合一下两个LISP

[复制链接]
发表于 2014-11-18 09:50:48 | 显示全部楼层 |阅读模式
各位大神能帮我整合下下面两个LISP吗
  1. (defun YH_chlayer (YH_layer / YH_S)
  2. (if (null (tblsearch "LAYER" YH_layer))
  3. (entmake (list
  4. '(0 . "LAYER")
  5. '(100 . "AcDbSymbolTableRecord")
  6. '(100 . "AcDbLayerTableRecord")
  7. (cons 2 YH_layer)         ;图层名称
  8. '(70 . 0)                 ;图层状态
  9. '(62 . 7)                 ;图层颜色
  10. '(6 . "bylayer")          ;图层线型
  11. )
  12. )
  13. )
  14. (setq YH_S (cadr (ssgetfirst)))
  15. (if YH_S
  16.     (command "CHPROP" YH_S "" "la" YH_layer "c" "bylayer" "")
  17.     (setvar "clayer" YH_layer)
  18.     )
  19. (princ)
  20. )
  21. (defun c:0 ()
  22. (YH_chlayer "0")
  23. )
  24. (defun c:1 ()
  25. (YH_chlayer "轮廓线-粗")
  26. )
  27. (defun c:2 ()
  28. (YH_chlayer "轮廓线-中")
  29. )
  30. (defun c:3 ()
  31. (YH_chlayer "轮廓线-细")
  32. )
  33. (defun c:4 ()
  34. (YH_chlayer "填充")
  35. )
  36. (defun c:5 ()
  37. (YH_chlayer "标注")
  38. )
  39. (defun c:6 ()
  40. (YH_chlayer "文字")
  41. )
  42. ;可继续添加,便于切换图层
  1. (defun c:gc ()
  2.   (prompt "选择要改变的图素: ")
  3.   (while (setq ss (ssget))
  4.    (prompt "输入你要改变到的层名:")
  5.    (setq a (getstring))
  6.    (if (not (tblsearch "layer" a))
  7.     (progn
  8.     (command "layer" "n" a "")
  9.     (setq cc (getstring "输入你要的色 1-红 2-黄 3-绿 4-靑 5-蓝 6-紫 "))
  10.     (if (= cc "")()   (command "layer" "c" cc a ""))
  11.     (setq ll (getstring "输入你要的线型 中心线-center 虚线-hidden 假想线-divide 回车为轮廓线 实线"))
  12.     (if (= ll "")() (command "layer" "l" ll a ""))
  13.    ))
  14.     (setq b (getreal "输入线型比例:   "))
  15.     (if (= b nil)(setq b 1))
  16.     (command "change" ss """p" "s" b "la" a  """layer" "s" a "")
  17.     (prompt "选择要改变的图素: ")
  18.     )
  19. )
比如在第一个执行命令时,比如按键盘2然后空格,命令发现没有2的图层,则新建图层,这是第一个命令可以实现的。我想在这个命令新建图层的那一步加上第二条命令的部分内容。也就是建层的话会要求你进行设置。而不是自动新建默认的图层


 楼主| 发表于 2014-11-18 15:03:12 | 显示全部楼层
求大神帮下忙啊!谢谢啦!
 楼主| 发表于 2014-11-18 17:01:32 | 显示全部楼层
怎么没人呢

点评

谁知道要怎么整合呢?  发表于 2014-11-18 21:37
发表于 2014-11-18 23:52:07 | 显示全部楼层
我看糊涂了
发表于 2014-11-19 08:10:28 | 显示全部楼层
关键是代码太难用。
发表于 2014-11-19 09:05:03 | 显示全部楼层
这两个程序涉及多个命令,这些命令虽然看似关联,实际相互独立,程序整合起来没有什么意义,不怕麻烦,写在一起也可以。
程序中相关图层的几个概念是可以整合的,但如果像楼主提供的这种代码不整合也罢,这些程序原本就是某人为了简便的,如果强行整合,只会又增加麻烦,不如直接使用acad命令了。
关于图层是有东西可写的(论坛也有一些程序,不妨搜索试试),不过真写好了还是要有点功底的,毕竟acad(及ET)本身关于图层的功能就比较全面。
如果有兴趣,楼主这样的程序功能可以作为初学者练手用。如果非要整合不可,楼主也应该说明到底整合后要达到怎样的功能。
 楼主| 发表于 2014-11-19 09:24:21 | 显示全部楼层
ll_j 发表于 2014-11-19 09:05
这两个程序涉及多个命令,这些命令虽然看似关联,实际相互独立,程序整合起来没有什么意义,不怕麻烦,写在 ...

其实就是在没有你自定义的图层的时候,会提示要你自己定义其颜色等参数,现在只要颜色就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-23 17:00 , Processed in 0.182912 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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