乐筑天下

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

[编程交流] 在autolisp和n中创建层

[复制链接]

29

主题

84

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 08:59:14 | 显示全部楼层 |阅读模式
你好
如何在不将图层设置为当前图层的情况下创建图层以供以后在autolisp程序中使用?
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 09:04:57 | 显示全部楼层
1.
  1. (command "_-LAYER" "_New" "MayNewLauerForFuture" "")

2.entmake
  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. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:12:53 | 显示全部楼层
 
 
我们如何为您的代码设置颜色编号和线型(连续)
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:14:59 | 显示全部楼层
 
默认情况下,创建的图层是连续线型。然而,需要修改代码以适应图层颜色的变化。
 
在那之前我可以问一些额外的信息吗。。。具体来说,你想做什么?您经常看到,插入块或在模板(.DWT)中包含这些层等可能比创建自定义代码更简单。我只是想问一下。
回复

使用道具 举报

29

主题

84

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 09:21:45 | 显示全部楼层
你好
我需要在autolisp中创建这些层,以使用它们在图形中插入这些层上的文本结果。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:24:16 | 显示全部楼层
我将使用entmake创建层,因为可以同时应用许多属性,例如:
 
  1. (vl-load-com)
  2. ;;; Create layer "Lay1" "Lay2" "Lay3"
  3. (mapcar '(lambda(lay)
  4. (vla-add(vla-get-layers(vla-get-activedocument (vlax-get-acad-object))) lay)
  5. )
  6. (list "Lay1" "Lay2" "Lay3")
  7. )

 
使用名称、颜色、线型和线宽调用上述内容:
 
  1. (vl-load-com)
  2. ((lambda (oLayers layList)
  3.   (foreach lay  layList
  4.     (if (not (tblsearch "layer" lay))
  5.       (vl-catch-all-apply 'vla-add (list oLayers lay)))))
  6. (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  7. '("Test1" "Test2" "Test3"))

 
如果图层已存在,则将对其进行修改以匹配您指定的特性。如果函数成功,将返回非nil结果。
 
请注意,所提供参数的有效性是调用方的责任。
回复

使用道具 举报

29

主题

84

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
145
发表于 2022-7-6 09:30:36 | 显示全部楼层
^^他说的。。。非常整洁,李:眨眼:哈哈
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:31:37 | 显示全部楼层
干杯
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:38:35 | 显示全部楼层
非常感谢李·麦克
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:41:41 | 显示全部楼层
不客气
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 05:58 , Processed in 0.402802 second(s), 83 queries .

© 2020-2025 乐筑天下

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