乐筑天下

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

[编程交流] Lisp搜索层和通道

[复制链接]

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:26:29 | 显示全部楼层 |阅读模式
你好:
 
很好的一天。
 
我是一个新手,试图找出是否有一个Lisp程序,可以帮助我了。
我需要浏览200个图形,并将某些图层更改为特定线宽。
 
以下是我需要做的:
 
选择图层管理器
搜索*furn*-全选-将线宽更改为0.05
搜索*eqpm*
如果*eqpm*的前缀为“mv-”,线宽保持不变,
否则将线宽更改为0.05
搜索*pfix*-全选-将线宽更改为0.05

 
谢谢你的帮助。
-凯尔
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:31:59 | 显示全部楼层
嗨,克尔,欢迎来到CADTutor,我希望你会喜欢这里
 
最好的选择是使用脚本打开每个图形,运行LISP程序更改图层线宽,然后保存/关闭图形并移动到下一个图形;或者使用ObjectDBX,尽管设置更复杂,但它可以在不打开它们的情况下处理所有图形(因此它可以在不到一分钟的时间内处理数百个图形)。
 
让我知道你想走哪条路,我会帮你走。
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:34:42 | 显示全部楼层
对于初学者,请在单个图形上尝试以下代码:
 
不确定如何运行代码?读这个。
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:36:08 | 显示全部楼层
谢谢李,
我一直是一个球迷,已经在这个论坛上阅读了很长一段时间了,它只是最近,我需要帮助。
 
我想我会运行Lisp程序的例行程序-这将是我最好的选择。因为我不熟悉ObjectDBX。虽然时间至关重要,但我认为我可以遍历每个图形并运行lisp命令。通过这种方式,我也可以看到我是否需要改变什么。
 
谢谢。你们是最棒的
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:42:20 | 显示全部楼层
看起来很棒。
我们可以修改它以提示我/或要求输入线宽吗
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:45:33 | 显示全部楼层
很酷,不用担心
 
如果您决定使用ObjectDBX路径,一种简单的方法是将该程序加载到一个空白的新图形中,然后加载并运行:
 
  1. (defun c:DBXLWChange nil
  2. (foreach x
  3.    (LM:ODBX
  4.      (function
  5.        (lambda ( x / n )
  6.          (vlax-for l (vla-get-layers x)
  7.            (if
  8.              (and
  9.                (wcmatch (setq n (strcase (vla-get-name l))) "*FURN*,*EQPM*,*PFIX*")
  10.                (not (wcmatch n "MV-*EQPM*"))
  11.              )
  12.              (vla-put-lineweight l acLnWt005)
  13.            )
  14.          )
  15.        )
  16.      )
  17.      nil t
  18.    )
  19.    (princ
  20.      (strcat "\n--> Drawing: " (car x)
  21.        (if (vl-catch-all-error-p (cdr x))
  22.          (strcat "\n    Error: " (vl-catch-all-error-message (cdr x)))
  23.          "\nSuccessful."
  24.        )
  25.      )
  26.    )
  27. )
  28. (princ)
  29. )
  30. (vl-load-com) (princ)

 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:45:34 | 显示全部楼层
 
当然,比如:
 
[code](defun c:LWChange(/lws lw n)(setq lws’(-3.00 0.00 0.05 0.09 0.13 0.15 0.18 0.20 0.25 0.30 0.35 0.40 0.50 0.53 0.60 0.70 0.80 0.90 1.00 1.06 1.20 1.40 1.58 2.00 2.11))(而(和(setq lw(getreal“\n指定线宽(默认值为3):”)(非(成员lw lws))(原理“\n-->无效线宽”)(如果lw(progn(setq lw)(如果(
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:49:41 | 显示全部楼层
它起作用了。
太棒了!谢谢
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:53:16 | 显示全部楼层
你让我的生活轻松了一点。
再次感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:55:13 | 显示全部楼层
 
不客气,我只是好奇,你指的是什么代码,ObjectDBX?
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:08 , Processed in 0.402400 second(s), 72 queries .

© 2020-2025 乐筑天下

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