乐筑天下

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

[编程交流] 更改线型

[复制链接]

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 07:09:52 | 显示全部楼层 |阅读模式
是否有一种简单的方法(可能是LISP)全局更改线型设置为“Bylayer”的对象,并将线型更改为该图层的实际线型?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:19:32 | 显示全部楼层
  1. (defun c:CLT () (c:ChangeLinetypes))
  2. (defun c:ChangeLinetypes (/ ss layerItem lineType)
  3. (princ "CHANGE LINETYPES")
  4. (vl-load-com)
  5.   (if
  6.     (and (setq eName (car (entsel "\nSelect object on desired layer: ")))
  7.          (setq ss
  8.                 (ssget "_x"
  9.                        (list (setq layerName (assoc 8 (entget eName)))))))
  10.      (if (and (setq layerItem
  11.                      (vla-item (vla-get-layers
  12.                                  (cond (*activeDoc*)
  13.                                        ((setq *activeDoc*
  14.                                                (vla-get-activedocument
  15.                                                  (vlax-get-acad-object))))))
  16.                                (vla-get-layer (vlax-ename->vla-object eName))))
  17.               (= :vlax-false (vla-get-lock layerItem)))
  18.        (progn
  19.          (vla-startundomark *activeDoc*)
  20.          (vlax-for x (setq ss (vla-get-activeselectionset *activeDoc*))
  21.            (vla-put-linetype
  22.              x
  23.              (cond (lineType)
  24.                    ((setq lineType (vla-get-linetype layerItem))))))
  25.          (vla-delete ss)
  26.          (vla-endundomark *activeDoc*))
  27.        (prompt "** Layer is locked ** "))
  28.      (prompt "\n** Nothing selected ** "))
  29. (princ))
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:23:53 | 显示全部楼层
 
我不太明白你的要求。如果对象的线型已设置为“BYLAYER”,则无需对其进行更改。也许我读得不对,但伦德曼似乎很在行。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:27:42 | 显示全部楼层
 
我同意你的观点;但我很无聊,所以我很快就写了。英雄联盟
 
干杯
回复

使用道具 举报

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 07:35:54 | 显示全部楼层
我非常欣赏LISP RenderMan!我今天要试一试。
 
有足够的理由从“Bylayer”更改线型。当我清理进入的建筑文件时,我会把它们的500层缩小到我自己的6层。在将所有线型设置为“Bylayer”的情况下,我希望它与原来的一样。例如,它们可能有3个不同的家具层,其中1个有隐藏的线型,其他两个没有。我将所有这些放在我的1层上,但希望每个对象保持其线型,而不是成为我的Bylayer。
 
有道理?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:37:50 | 显示全部楼层
 
我发布的代码最初会提示用户选择一个对象,并导致修改该层上的所有对象。但是,我的理解正确吗?您希望打开一个外部图形,并简单地修改该图形中的所有对象(意味着所有层)?
 
*如果是这样,那么我可以改进我发布的代码,不再提示您(用户)一次选择一个层,相反,它(代码)将自动为所有对象(即所有层)按顺序执行此过程。。。你的选择。
回复

使用道具 举报

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 07:42:58 | 显示全部楼层
是的,我注意到了你的代码。我有一个类似的代码,我运行每个选择改变层(我的不是可视化的,只是为我模仿了LISP)。我想我希望更改线型是一个全局过程,我可以在整个图形中运行。。。。我本来不想用它来打扰你,今天我打算玩一玩,但如果你不忙也不介意的话:D
 
非常感谢。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:50:57 | 显示全部楼层
 
别担心;我们都从某个地方开始。
 
 
... 我这么认为;我很快就会发回修改后的代码。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 07:54:34 | 显示全部楼层
又是一个缓慢的一天。。。如果我踩了你的脚,我道歉,马特。
 
解锁图层是您的责任:眨眼:
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:00:00 | 显示全部楼层
 
 
我不确定我什么时候能完成当前的任务;谢谢艾伦。
 
单独(和离线?),你不想和我分享任何指针来帮助我的“领航员”t交叉路口,是吗?
(^^你知道,因为你很慢,而且^^)
 
 
我认为这是一个谨慎的步骤;一个我也应该采用的(特别是对于论坛代码)。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 11:14 , Processed in 0.351387 second(s), 72 queries .

© 2020-2025 乐筑天下

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