乐筑天下

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

[编程交流] 层太多!!!需要mer

[复制链接]

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 10:50:50 | 显示全部楼层
我向李道歉,但我必须同意艾伦的观点。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:52:52 | 显示全部楼层
 
 
该测试是出于好奇使用(cond vs.(or)。
 
我在我的理由中说明了不让它全球化。每个图形只执行一次,使其全局化的目的变得毫无意义。
 
mapcar语句仅在定义vla get layers后执行。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:58:15 | 显示全部楼层
 
仔细观察后,我发现#层在mapcar语句中没有访问。。。不太清楚我在说什么。。
 
我的道歉AJ-你说得很对。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:00:33 | 显示全部楼层
英雄联盟
没问题。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 11:02:40 | 显示全部楼层
 
 
我以前收到过这种形式的代码,但那是很久以前的事了,我不知道如何启动这种代码。会是这样吗?
  1. (DEFUN C:MRGLAYR ()
  2.    (MergeLayers '("A" "B" "C" "D") '("1" "2" "3" "4"))
  3. (PRINC)
  4. )
  5. (defun MergeLayers (#OldLayers #NewLayers / #Layers)
  6. (setq #Layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  7. (mapcar
  8.    '(lambda (o n)
  9.       (and (tblsearch "layer" o)
  10.            (or (tblsearch "layer" n) (vla-add #Layers n))
  11.            (vl-cmdf "_.-laymrg" "_n" o "" "_n" n "_y")
  12.       ) ;_ and
  13.     ) ;_ lambda
  14.    #OldLayers
  15.    #NewLayers
  16. ) ;_ mapcar
  17. ) ;_ defun
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:05:06 | 显示全部楼层
或者,如果运行脚本,您可以这样做:
 
  1. (MergeLayers '("A" "B" "C" "D") '("1" "2" "3" "4"))

 
在脚本中,或者在命令行中。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 11:08:48 | 显示全部楼层
 
我可以把这一行放在一个脚本中,它将运行这个lisp程序?我不知道。如果我这样写剧本:
  1. (MergeLayers '("A" "B" "C" "D") '("1" "2" "3" "4"))
  2. Zoom
  3. E
  4. QSAVE

它将合并A-1、B-2、C-3、D-4、最大化和保存?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:11:19 | 显示全部楼层
对的
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 11:15:19 | 显示全部楼层
很不错的。。。我试试看。。。谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:18:07 | 显示全部楼层
很高兴你得到了你需要的。
并不是说这是最好的方法,但你甚至可以把一切都放在一个。scr文件并加载。
 
  1. (defun MergeLayers (#OldLayers #NewLayers / #Layers)
  2. (setq #Layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  3. (mapcar
  4.    '(lambda (o n)
  5.       (and (tblsearch "layer" o)
  6.            (or (tblsearch "layer" n) (vla-add #Layers n))
  7.            (vl-cmdf "_.-laymrg" "_n" o "" "_n" n "_y")
  8.       ) ;_ and
  9.     ) ;_ lambda
  10.    #OldLayers
  11.    #NewLayers
  12. ) ;_ mapcar
  13. )
  14. (MergeLayers '("A" "B" "C" "D") '("1" "2" "3" "4"))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:52 , Processed in 0.791272 second(s), 70 queries .

© 2020-2025 乐筑天下

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