乐筑天下

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

[编程交流] <--这家伙需要帮助

[复制链接]
pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:30:47 | 显示全部楼层
 
我不明白。例如,在图层集合中,有两个或三个具有相同的线型和颜色,那么会发生什么?
回复

使用道具 举报

11

主题

46

帖子

36

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:34:10 | 显示全部楼层
 
  1. (vl-load-com)
  2. (setq acadDocument (vla-get-activedocument (vlax-get-acad-object)))
  3. (setq layertable (vla-get-layers acadDocument))
  4. (repeat
  5.         (setq Lay (tblnext "LAYER" 1))
  6.         (while
  7.                 (setq layLT (cdr (assoc 6 lay))
  8.                           layCOLOR (cdr (assoc 62 lay))
  9.                           layNM (cdr (assoc 2 lay))
  10.                 );setq
  11.                         (open C:\\Documents and Settings\\moorerb\\Desktop\\scripting-lisp\\standardlayers.txt "r")

 
这是我到目前为止的编码。我还没有找到结束循环的方法,仍然在阅读如何计算分隔文件中的每一行,TSV作为分隔符
回复

使用道具 举报

11

主题

46

帖子

36

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:37:07 | 显示全部楼层
假设我有20层相同的LT和颜色,它将评估匹配层属性的名称,如果有问题的层的第一个字符与其中一个可能匹配的第一个字符匹配,则它将该名称保存为变量以将其更改为,如果有多个匹配,则它将顺行比较可能匹配的第二个字符。。。以此类推,以获得层的最准确名称。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:40:29 | 显示全部楼层
[code](while(setq a(tblnext“LAYER”(null a))(setq coll(list(cdr(assoc 6 a))(cdr(assoc 62 a))(cdr(assoc 2 a))))(print coll);
回复

使用道具 举报

11

主题

46

帖子

36

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:44:58 | 显示全部楼层
 
这是standardlayers的一部分。txt。这些空间实际上是选项卡定界
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:48:19 | 显示全部楼层
可以在这里为我们演示这两行:
电气1隐藏
电气7隐藏
 
如果找到匹配项。然后呢?新名字是什么?
 
Anyhoo。。如果唯一的问题是循环。参见上一篇文章
回复

使用道具 举报

11

主题

46

帖子

36

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:49:06 | 显示全部楼层
旧层名称:ELECTRICAL
图层颜色:1
图层LT:隐藏
 
(与standardlayers.txt比较)
 
新图层名称:ELEC
(命令“-rename”“la”OLD NEW)
 
 
它只比较颜色和线型以及名称中的字符(如果需要)。很可能需要比较名称中的字符
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:52:07 | 显示全部楼层
看看我是否做对了。电气/1/隐藏将是电气,电气/7/隐藏也将是电气,对吗?
使用wcmatch进行名称比较,或使用层名称上的第一个字符减少比较列表的谓词函数
回复

使用道具 举报

11

主题

46

帖子

36

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:56:56 | 显示全部楼层
请记住,我对lisp非常陌生,不知道很多函数。我的想法是,我将逐步遍历每个现有层,对照列表检查名称,如果名称不在我的列表中,则运行更改名称的函数。IE:所有关于颜色和lt检查的废话。当我考虑这个例程的wcmatch功能时,如果我错了,请纠正我,它必须是自己的功能,在运行我的主例程之前过滤现有的层列表??
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:58:42 | 显示全部楼层
 
是的,有点。。。我可以给你写一个片段。。。。但是你没有回答我的问题,
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 20:59 , Processed in 0.749972 second(s), 81 queries .

© 2020-2025 乐筑天下

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