乐筑天下

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

[编程交流] 按线型冻结?-VBA

[复制链接]

13

主题

26

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-6 15:01:22 | 显示全部楼层 |阅读模式
大家好。我有一个梦想。。。。。我希望遍历dwg中的所有对象(显示的对象),选择“按线型”,然后冻结(或不显示)具有该线型的对象。特别是即使它们位于块参照中。。。。。我能把它们的线型改成“空白”线型吗
? 嗯,仅在某些情况下。。。。。。。
思想?
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:09:30 | 显示全部楼层
我不知道如何在VBA中执行此操作,但有一种使用AutoLISP执行此操作的方法:
 
 
  1. (setq ss1 (ssget "x" (list (cons (6 LINETYPENAME))))
  2. (setq ent-index 0)
  3. (repeat (sslength ss1)
  4. (setq entname (ssname ss1 ent-index))
  5. (setq entlist (entget entname))
  6. (if (assoc 60 entlist)
  7.    (setq entlist (subst '(60 . 1) (assoc 60 entlist) entlist))
  8.    (setq entlist (append entlist '((60 . 1)))))
  9. (entmod entlist)
  10. (setq ent-index (1+ ent-index))
  11. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:15:01 | 显示全部楼层
Uddfl,将跳过线型设置为“bylayer”的图元。。。
 
只是一个想法。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:25:41 | 显示全部楼层
啊,还有一件事-注意超过32767个元素的选择集。。。重复方法对这些不起作用。。。
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:32:08 | 显示全部楼层
嗯,我刚刚扔了一个又便宜又脏的。我不太想打字(是的,星期五)。 
六羟甲基三聚氰胺六甲醚。。。是的。你如何解决这些问题?WHILE函数?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:39:44 | 显示全部楼层
检查这个-
 
需要考虑所有情况。。。
[列表]
  • 在具有所需线型的图层上,对象线型设置为bylayer(需要这些…)
  • 在具有所需线型的图层上,对象线型设置为不同的值(去掉这些..)
  • 不在具有所需线型的图层上,但对象设置为所需线型。(需要这些…)
    这不是一项容易的任务。。。
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 15:42:30 | 显示全部楼层
    如果您不想将选择集转换为实体名称列表,可以使用类似这样的方法来迭代ss:
     
    1. 2

     
    我知道一个愚蠢的例子,但我只是想告诉你这个想法
    回复

    使用道具 举报

    0

    主题

    119

    帖子

    119

    银币

    初来乍到

    Rank: 1

    铜币
    0
    发表于 2022-7-6 15:52:59 | 显示全部楼层
    ^你作弊了,你使用了vl函数!
     
    实际上,这是一个很好的了解方法。谢谢
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 15:59:13 | 显示全部楼层
    哈哈。。。如果没有vl函数,我可能可以做到这一点,但这需要大量的编码
     
    使用ssnamex将其放入列表是很好的,因为不需要在集合中乱序,这是一种繁琐的方法-您可以使用LISP的目的:列表。
     
    因此,您可以使用所有列表函数,例如foreach、mapcar。。等等等等。
     
    希望这有帮助
     
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 16:01:45 | 显示全部楼层
    在这一切之后,我们甚至没有像OP想要的那样使用VBA
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-4 21:15 , Processed in 1.217901 second(s), 72 queries .

    © 2020-2025 乐筑天下

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