YZ 发表于 2022-7-7 00:04:16

用于解冻冻结的按钮宏

我使用LT,因此只能实现宏和DIESEL解决方案。
 
有人能想出一种方法来编写一个命令来切换冻结层和解冻层吗?
 
据我所知,我不能使用图层状态,因为每个图形都有用户生成的唯一图层。
 
最终,我删除了冻结的层和这些层上的所有对象,因此任何可以从宏中返回层列表的东西都将是令人惊讶的。

YZ 发表于 2022-7-7 00:10:18

没有命令或宏来关闭/打开图层或冻结/解冻图层?
 
如果我是Autodesk,我会发出layswitchfreeze命令。

BIGAL 发表于 2022-7-7 00:13:41

Autodesk不需要这样做,因为它可以通过程序以各种方式完成,但不需要LT
 
有人在那里,如果你可以导出一个图层列表LT!!!名称和开/关等,然后您可以轻松编写脚本(excel)来更改图层状态。

YZ 发表于 2022-7-7 00:16:52

我从未想过这一点。也许可以将层列表导入到脚本文件中,并让其填充哪些层设置为冻结,哪些层设置为解冻。明亮的我不知道如何以这种方式导出,但无论如何我都会研究它。谢谢比格尔。

BIGAL 发表于 2022-7-7 00:20:24

您可以在图层窗口中运行命令layerstate its作为一个按钮,您可以全部打开全部关闭等,然后可以将文件更改为相反的格式并重新加载。你可以加载记事本并进行搜索替换

BlackBox 发表于 2022-7-7 00:22:26

我能想到的最好的(没有口齿不清):
 
解冻所有层:

^C^C^P._-layer;"thaw";"*";;

 
还原层:

^C^C^P._layerp;

 
请注意,这不会考虑解冻后所做的任何图层更改。要获得更多功能,需要LISP(或其他代码)

BIGAL 发表于 2022-7-7 00:27:23

在这方面做得很快,layerstates将得到LT的支持。
 
好了,现在怎么做图层状态导出它会写一个las文件,这是一个txt文件,你会在这个文件中找到每一层两行,然后说11,这是=关闭和冻结90 3=没有绘图90 10=冻结90 0=打开和解冻&没有绘图
 
在word中,您可以一次编辑两行,如果您只需将3更改为11,则可能会破坏las文件的3号颜色,如果层名称中有11,则需要进行搜索并至少替换4次,做一个宏并保存它首先是把一个虚拟的数字在冻结说fXXXX,然后一个虚拟的数字为on on XXXX等,然后交换fXXXX的一个新的on号码,否则你会使一切,无法解决什么应该关闭。
 
进行编辑,然后重新加载las文件。例如搜索将90^p3替换为90^pFxxx^p是行的末尾,因此中间更改了2行
 
希望这是有意义的,如果你挣扎与文字部分张贴在这里一旦你做了宏只需要一两分钟。
 
这是一个单词宏,用于一次更改,只需复制粘贴内容,用于每个已冻结的,无绘图等
Sub OnOff()
'
' OnOff Macro
' Macro recorded 8/3/2011 by
'
   Selection.Find.ClearFormatting
   Selection.Find.Replacement.ClearFormatting
   With Selection.Find
       .Text = "90^p0"
       .Replacement.Text = "90^ponthawnoplot"
       .Forward = True
       .Wrap = wdFindContinue
       .Format = False
       .MatchCase = False
       .MatchWholeWord = False
       .MatchWildcards = False
       .MatchSoundsLike = False
       .MatchAllWordForms = False
   End With
   Selection.Find.Execute Replace:=wdReplaceAll
End Sub

BIGAL 发表于 2022-7-7 00:31:26

让人们知道这是否解决了你的问题是个好主意。很乐意帮助更多人。

YZ 发表于 2022-7-7 00:36:02

很抱歉,比格尔,我刚刚注意到你和伦德曼的其他建议。
 
我还没有解决这个问题,只是没有在工作流程中进行任何“修补”。
 
在图层特性管理器中单击鼠标右键时,我发现了此菜单。如果我按开/关对层进行排序,然后选择所有可以打开的关闭层,然后右键单击,反转选择并关闭这些层。

 
比我希望的还要笨拙。我希望AutoCAD能够在所有图层之间切换图层设置。
 
无论如何,相信你的BIGAL会有一个雄心勃勃的解决方案。我喜欢它。我将继续研究这个问题,但在尝试编写宏以导出LAYERSTATE时遇到了一个障碍。似乎没有对话框我做不到。

Manila Wolf 发表于 2022-7-7 00:36:58

这能行吗?
 
要冻结除当前外的所有内容:-
 
^C^C-LAYER;F;*;;
 
解冻所有:-
 
^C^C_Laythw;
页: [1] 2
查看完整版本: 用于解冻冻结的按钮宏