乐筑天下

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

[编程交流] 层Lisp

[复制链接]

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 10:06:03 | 显示全部楼层 |阅读模式
我不太流利的lisp,所以我希望有人可以帮助我创建一个层更新lisp。我们有旧的图纸,有旧的图层,我们在新的项目中使用它们。我想创建一个lisp,可以将具有相同线宽、颜色和线型的旧图层重命名为较新的名称。我想我需要一些if语句,如果那些较新的层已经存在,或者如果任何较旧的层不存在,它就会创建新层。任何帮助都将不胜感激。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:11:23 | 显示全部楼层
看这里
 
回复

使用道具 举报

0

主题

17

帖子

17

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:12:54 | 显示全部楼层
嗨,这正是我一直在寻找的。我是lisp的新手,我们正在尝试制作一个模板。我认为lsip例程是一条出路。我有点理解你的链接,但你能解释一下吗?我只想找一个新的图层部分,我想它应该是洋红类型的?我有点困惑,是哪一部分创建了图层,是哪一部分将旧图层更改为新图层。
 
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:17:09 | 显示全部楼层
我的代码只会使用子功能“MkLay”创建新图层,它会获取图层名称、颜色、线型、线宽以及图层是否可打印,它不会修改现有图层。
 
我在主函数中使用mapcar在层名称/颜色/线宽等列表中迭代子函数。这是一个旧代码,但很可能编写得更好。
回复

使用道具 举报

0

主题

17

帖子

17

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:20:29 | 显示全部楼层
这很有效。
 
我想知道每个层名称和各自的颜色代码、线型等之间的间距——是否有一个特定的数字,或者只要它们在相对列中彼此下面就好吗??
我只是用记事本做编辑。。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:22:54 | 显示全部楼层
LISP不关心空格,所以任何空格都可以-唯一的限制条件是它们在列表中的顺序。
回复

使用道具 举报

0

主题

17

帖子

17

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:25:48 | 显示全部楼层
嘿,Lee,我填充了lisp来创建一个特定的layerset。我的问题:
如何设置所有图层特性?我有颜色、LT、LW、可打印,但我可以将图层设置为冻结/解冻、打开/关闭、锁定吗?
我可以输入层描述吗?
 
...非常感谢!我实际上在学习。。。。一点。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:28:40 | 显示全部楼层
这是很旧的代码,
 
也许可以试试这个:
 
  1. (defun MakeLayer ( name colour linetype lineweight willplot bitflag description )
  2. ;; © Lee Mac 2010
  3. (or (tblsearch "LAYER" name)
  4.    (entmake
  5.      (append
  6.        (list
  7.          (cons 0 "LAYER")
  8.          (cons 100 "AcDbSymbolTableRecord")
  9.          (cons 100 "AcDbLayerTableRecord")
  10.          (cons 2  name)
  11.          (cons 70 bitflag)
  12.          (cons 290 (if willplot 1 0))
  13.          (cons 6
  14.            (if (and linetype (tblsearch "LTYPE" linetype))
  15.              linetype "CONTINUOUS"
  16.            )
  17.          )
  18.          (cons 62 (if (and colour (< 0 (abs colour) 256)) colour 7))
  19.          (cons 370
  20.            (fix
  21.              (* 100
  22.                (if (and lineweight (<= 0.0 lineweight 2.11)) lineweight 0.0)
  23.              )
  24.            )
  25.          )
  26.        )
  27.        (if description
  28.          (list
  29.            (list -3
  30.              (list "AcAecLayerStandard" (cons 1000 "") (cons 1000 description))
  31.            )
  32.          )
  33.        )
  34.      )
  35.    )
  36. )
  37. )
  38. (defun c:MakeLayers ( )
  39. ;; © Lee Mac 2010
  40. (
  41.    (lambda ( lst )
  42.      (mapcar 'cons (car lst) (apply 'mapcar (cons 'MakeLayer lst)))
  43.    )
  44.   '(         
  45.      ( "CEN"   "DIMS"   "HAT"  "HID"   "LOGO" "OBJ"  "PAPER"   "PHAN"   "TITLE" "TXT" )  ; Layer Name                       [ STR   ]
  46.      (   6      -1        3      4       176   -2       5         6       176     7   )  ; Layer Colour (-ve for layer off) [ INT   ]
  47.      ("CENTER"  nil      nil  "HIDDEN"   nil   nil  "PHANTOM" "PHANTOM"   nil    nil  )  ; Layer LineType                   [ STR   ]
  48.      (  0.18   0.18      0.18   0.15    0.09   0.40    nil      0.18      nil    nil  )  ; Layer LineWeight                 [ REAL  ]
  49.      (   T       T        T      T        T     T      nil        T        T      T   )  ; Plot? (T or nil)                 [ BOOLE ]
  50.      (   0       1        5      0        0     3       6         0        1      0   )  ; Bit Flag (0 = None, 1=Frozen, 2=Frozen in Vp, 4=Locked) [ INT ]
  51.      (  nil "Dimensions" nil "Hidden""For Logo" nil    nil      nil  "For Title"  nil )  ; Description (nil for none)    [ STR   ]
  52.    )
  53. )
  54. )
回复

使用道具 举报

0

主题

17

帖子

17

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:34:28 | 显示全部楼层
哈哈哈-非常好。。。我想我已经迷失在我最初的思路中了,谢谢艾伦。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:37:38 | 显示全部楼层
看起来更简单,我也试试
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 21:12 , Processed in 1.518535 second(s), 72 queries .

© 2020-2025 乐筑天下

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