找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 536|回复: 5

[每日一码] 指定图层内创建对象做块(新手参考用)

[复制链接]

已领礼包: 201个

财富等级: 日进斗金

发表于 2020-12-9 15:13:17 | 显示全部楼层 |阅读模式

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

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

×
  1. (defun c:nob (/ osm ass azc1 azc2)
  2. (setvar "cmdecho" 0)
  3. (setq osm (getvar "osmode"))
  4. (setvar "osmode" 0)
  5. (if (null (tblsearch "LAYER" "安装标记"))
  6.         (entmake
  7.             (list
  8.                '(0 . "LAYER")
  9.                '(100 . "AcDbSymbolTableRecord")
  10.                '(100 . "AcDbLayerTableRecord")
  11.                '(70 . 0)
  12.                 (cons 2 "安装标记")
  13.                 (cons 62 3))))
  14. (setq ass (ssadd))
  15. (entmake (list '(0 . "CIRCLE") (cons 8 "安装标记") (cons 10 (list 0 0 0)) (cons 40 100)))
  16. (setq azc1 (entlast))
  17. (ssadd azc1 ass)
  18. (entmake (list '(0 . "LWPOLYLINE")
  19.                '(100 . "AcDbEntity")
  20.                '(8 . "安装标记")
  21.                '(100 . "AcDbPolyline")
  22.                '(90 . 2)
  23.                '(10 0.0 -65.0 0.0)
  24.                '(40 . 150)
  25.                '(41 . 0)
  26.                '(10 0.0 100.0 0.0)
  27.                '(40 . 0)
  28.                '(41 . 0)
  29.                ))
  30. (setq azc2 (entlast))
  31. (ssadd azc2 ass)
  32. (if (null (tblsearch "block" "板安装标记"))
  33. (progn
  34. (entmake (list '(0 . "block") (cons 2 "板安装标记") '(70 . 0) (cons 10 (list 0 0 0))))
  35. (repeat (setq i (sslength ass))    (entmake (cdr (entget (ssname ass (setq i (1- i)))))))
  36. (entmake '((0 . "ENDBLK")))
  37. (xdrx-entity-delete ass)))

  38. (entmake (list '(0 . "INSERT") '(8 . "安装标记") (cons 2 "板安装标记") (cons 10 (getpoint))))
  39. (setvar "osmode" osm)
  40. (princ)
  41. )

  42.      

评分

参与人数 1D豆 +5 收起 理由
newer + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-10 01:22:15 | 显示全部楼层
本帖最后由 newer 于 2020-12-10 01:24 编辑

感谢楼主分享代码,不过,最好是把代码格式化了,方便阅读
像这样:

  1. (defun c:nob (/ osm ass azc1 azc2)
  2.   (setvar "cmdecho" 0)
  3.   (setq osm (getvar "osmode"))
  4.   (setvar "osmode" 0)
  5.   (if (null (tblsearch "LAYER" "安装标记"))
  6.     (entmake
  7.       (list
  8.         '(0 . "LAYER")
  9.         '(100 . "AcDbSymbolTableRecord")
  10.         '(100 . "AcDbLayerTableRecord")
  11.         '(70 . 0)
  12.         (cons 2 "安装标记")
  13.         (cons 62 3)
  14.       )
  15.     )
  16.   )
  17.   (setq ass (ssadd))
  18.   (entmake (list '(0 . "CIRCLE")
  19.                  (cons 8 "安装标记")
  20.                  (cons 10 (list 0 0 0))
  21.                  (cons 40 100)
  22.            )
  23.   )
  24.   (setq azc1 (entlast))
  25.   (ssadd azc1 ass)
  26.   (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(8 . "安装标记")
  27.                  '(100 . "AcDbPolyline") '(90 . 2) '(10 0.0 -65.0 0.0)
  28.                  '(40 . 150) '(41 . 0) '(10 0.0 100.0 0.0) '(40 . 0) '(41 . 0))
  29.   )
  30.   (setq azc2 (entlast))
  31.   (ssadd azc2 ass)
  32.   (if (null (tblsearch "block" "板安装标记"))
  33.     (progn
  34.       (entmake (list '(0 . "block")
  35.                      (cons 2 "板安装标记")
  36.                      '(70 . 0)
  37.                      (cons 10 (list 0 0 0))
  38.                )
  39.       )
  40.       (repeat (setq i (sslength ass))
  41.         (entmake (cdr (entget (ssname ass (setq i (1- i))))))
  42.       )
  43.       (entmake '((0 . "ENDBLK")))
  44.       (xdrx-entity-delete ass)
  45.     )
  46.   )

  47.   (entmake (list '(0 . "INSERT")
  48.                  '(8 . "安装标记")
  49.                  (cons 2 "板安装标记")
  50.                  (cons 10 (getpoint))
  51.            )
  52.   )
  53.   (setvar "osmode" osm)
  54.   (princ)
  55. )


点评

好的,最近就研究研究  详情 回复 发表于 2020-12-10 08:13
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

发表于 2020-12-10 03:34:59 | 显示全部楼层
学习学习,提高自我
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

 楼主| 发表于 2020-12-10 08:13:57 | 显示全部楼层
newer 发表于 2020-12-10 01:22
感谢楼主分享代码,不过,最好是把代码格式化了,方便阅读
像这样:

好的,最近就研究研究
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2230个

财富等级: 金玉满堂

发表于 2020-12-10 10:13:39 | 显示全部楼层
做个对论坛有益的人。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

发表于 2020-12-11 06:32:05 | 显示全部楼层
确实是个值得好好学习的地方
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 02:20 , Processed in 0.550562 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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