当前位置:首页 > 设计 >

cad一键解锁所有图层(cad解锁全部图层命令)

来源:原点资讯(www.yd166.com)时间:2023-04-20 06:19:26作者:YD166手机阅读>>

ExcelVBA.EDAP.通用工具之38整合多个图纸文件为一个在实际应用中暴露了一个问题,当部分图层为锁定状态时,粘贴到成品文件后无法移动,一方面无法得到预期的每行10个图纸的阵列,另一方面锁定的内容永远停留在左上角的图框范围之内,两个错误任何一个都无无法接受,因此增加批量解锁指定文件夹内CAD文件的全部图层功能,相应的安排了批量锁定图层的功能。

cad一键解锁所有图层,cad解锁全部图层命令(1)

PS:C04-批量合并多张图纸也做了相应更新,合并前默认执行解锁操作,无需额外操作C02按钮。

应读者要求,分享代码如下

------------------------------------------------------------------------------------------------------------------------

Sub Dingmurch01SU_8911ACAD_ACAD2019_02Layerlock()

'【B对应功能】

'【C调试时间】

'【D简单描述】

'0变量定义

Dim ttNo As Integer

Dim rateratE As Integer

Dim ACADDWG_obj As AcadEntity

Dim Mylayer As acadlayer

'1变量初始化

rateratE = 1

ttNo = 0

''2读取cad文件清单

Dingmurch02FU_8001_RTbySelect

Dingmurch02FU_8013_FileList 0, 1, 0

''3针对每一个cad文件循环操作

'3.1对象初始化

On Error Resume Next

Set acadApp = GetObject(, "autocad.application")

If Err Then

Err.Clear

Set acadApp = CreateObject("autocad.application")

End If

acadApp.Visible = True 'False '

'3.2待处理图纸计数

For W = 0 To UBound(Dingmurch10PB_04ARR_FILEARR) - 1

If Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".DWG" Or Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".DWG" Then ttNo = ttNo 1

Next

MsgBox ttNo & "个文件待处理"

'3.处理

For W = 0 To UBound(Dingmurch10PB_04ARR_FILEARR) - 1

If (Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".dwg" Or Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".DWG") Then

'3.1打开对象处理

Set acaddwgnow = acadApp.Documents.Open(Dingmurch10PB_06RT_NAME & "\" & Dingmurch10PB_04ARR_FILEARR(W))

For Each Mylayer In acaddwgnow.Layers

Mylayer.Lock = True '此处true为锁定,false为解锁

Next

acaddwgnow.Save

acaddwgnow.Close

'3.2展示进度

Dingmurch02FU_1002_processrate rateratE, 0, ttNo, 0, 0, 100, 0, 100, 0, 100, 1, 1, "ACAD2019_02Layerlock" & Dingmurch10PB_04ARR_FILEARR(W)

DoEvents

rateratE = rateratE 1

End If

Next

MsgBox "操作完成!"

Set ACADDWG_obj = Nothing

acadApp.Quit

Set acadApp = Nothing

Unload Wecho03FM_01

End Sub

----------------------------------------------------------------------------------------------------------------------------------------

Sub Dingmurch01SU_8911ACAD_ACAD2019_04DWGtoOne()

'【B对应功能】

'【C调试时间】

'【D简单描述】

'0变量定义

Dim ttNo As Integer

Dim rateratE As Integer

Dim Mylayer As acadlayer

Dim ACADDWG_obj As AcadEntity

Dim FPoint(0 To 2) As Double

Dim TPoint(0 To 2) As Double

FPoint(0) = 0: FPoint(1) = 0: FPoint(2) = 0

'1变量初始化

rateratE = 1

ttNo = 0

''2读取cad文件清单

Dingmurch02FU_8001_RTbySelect

Dingmurch02FU_8013_FileList 0, 1, 0

''3针对每一个cad文件循环操作

'3.1对象初始化

On Error Resume Next

Set acadApp = GetObject(, "autocad.application")

If Err Then

Err.Clear

Set acadApp = CreateObject("autocad.application")

End If

acadApp.Visible = False

'3.2待处理图纸计数

For W = 0 To UBound(Dingmurch10PB_04ARR_FILEARR) - 1

If Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".dwg" Or Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".DWG" Then ttNo = ttNo 1

Next

ttNo = ttNo - 1

MsgBox ttNo & "个文件待合并"

SC = InputBox("请输入图纸比例", "1:1,1:10,1:100,输入冒号之后的数值", "")

'3.3打开ALL.dwg

Set acaddwgall = acadApp.Documents.Open(Dingmurch10PB_06RT_NAME & "\" & "成品.dwg")

'3.4处理其它文件

T1 = Timer

xxx = 0

yyy = 0

For W = 0 To UBound(Dingmurch10PB_04ARR_FILEARR) - 1

If (Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".dwg" Or Right(Dingmurch10PB_04ARR_FILEARR(W), 4) = ".DWG") And Dingmurch10PB_04ARR_FILEARR(W) <> "成品.dwg" Then

'3.4.1打开对象表格,统计对象数量并添加到选择集

'MsgBox "OPEN " & Dingmurch10PB_04ARR_FILEARR(W)

Set acaddwgnow = acadApp.Documents.Open(Dingmurch10PB_06RT_NAME & "\" & Dingmurch10PB_04ARR_FILEARR(W))

For Each Mylayer In acaddwgnow.Layers

Mylayer.Lock = False

Next

Dim SSSS As AcadSelectionSet

Set SSSS = acaddwgnow.SelectionSets.Add("T1")

SSSS.Select (acSelectionSetAll)

k = SSSS.Count

''MsgBox k

ReDim objCollection(0 To k - 1) As Object

l = 0

For Each zzzz In SSSS

Set objCollection(l) = zzzz

l = l 1

Next

'3.4.2打开成品

'MsgBox "MOVE " & "成品.dwg"

acaddwgall.Activate

On Error Resume Next

retObjects = acaddwgnow.CopyObjects(objCollection, acaddwgall.ModelSpace)

TPoint(0) = xxx: TPoint(1) = yyy: TPoint(2) = 0

If xxx < 500 * 9 * SC Then

xxx = xxx 500 * SC

ElseIf xxx = 500 * 9 * SC Then

xxx = 0

yyy = yyy - 300 * SC

End If

For Each MMMM In retObjects

MMMM.Move FPoint, TPoint

Next

'3.4.3关闭对象

'MsgBox "Close " & Dingmurch10PB_04ARR_FILEARR(W)

acaddwgnow.Close

'3.4.4保存成品

'acaddwgall.Save

ZoomExtents

'3.4.5展示进度

Dingmurch02FU_1002_processrate rateratE, 0, ttNo, 0, 0, 100, 0, 100, 0, 100, 1, 1, "ACAD2019_04DWGtoOne" & Dingmurch10PB_04ARR_FILEARR(W)

DoEvents

rateratE = rateratE 1

End If

Next

acaddwgall.Save

ZoomExtents

T2 = Timer - T1

MsgBox "操作完成!" & "耗时" & Format(T2, "0.000") & "秒"

acadApp.Visible = True

acadApp.WindowState = acMax

Set ACADDWG_obj = Nothing

'acadApp.Quit

'Set acadApp = Nothing

Unload Wecho03FM_01

End Sub

栏目热文

cad图层面板快捷命令(cad图层打开快捷命令)

cad图层面板快捷命令(cad图层打开快捷命令)

点击上方【大水牛测绘】关注我们在CAD软件中,图层命令LAYER可以创建或管理图层,修改图层的颜色、线型等特性。在命令行...

2023-04-20 06:07:05查看全文 >>

CAD打开图层快捷键(怎么用快捷键打开CAD图层)

CAD打开图层快捷键(怎么用快捷键打开CAD图层)

利用CAD软件制图的时候,工具栏上图层功能它能将图像相互堆叠在一起以创建整体图像的独立图形空间,特别是在处理处理大型项目...

2023-04-20 06:31:09查看全文 >>

cad图层怎么调出来(cad图层怎么开启)

cad图层怎么调出来(cad图层怎么开启)

建筑、装潢、电路等都需要设计图纸,而这些图纸在设计时使用的工具一般是CAD软件,图纸在设计的过程中,为了更好的控制图形的...

2023-04-20 06:48:45查看全文 >>

盗贼联盟哪个种族有优势(联盟什么种族玩盗贼最好)

盗贼联盟哪个种族有优势(联盟什么种族玩盗贼最好)

盗贼在《魔兽世界:燃烧的远征》中,虽不及术士、法师与猎人强势(TBC2.4.3版本综合考量),但在竞技场与野外依旧是热门...

2023-04-20 06:51:19查看全文 >>

盗贼什么种族适合新手(联盟什么种族适合玩盗贼)

盗贼什么种族适合新手(联盟什么种族适合玩盗贼)

魔兽世界这款经典的网络游戏在国内已经运营了15年了。记得几年前巫妖王版本的时候,那时的魔兽世界还很畅销,暴雪官方也表示不...

2023-04-20 06:27:59查看全文 >>

cad刷图层快速方法(cad格式刷怎么把颜色和图层一起刷)

cad刷图层快速方法(cad格式刷怎么把颜色和图层一起刷)

点击上方【大水牛测绘】关注我们在学习CAD软件使用的过程中,了解图层的使用方法是最基础的一步。在使用CAD画图时,如果不...

2023-04-20 06:25:53查看全文 >>

cad图层怎么设置(cad图层怎么设置自己的)

cad图层怎么设置(cad图层怎么设置自己的)

图层是AUTOCAD中很重要的一个组成部分。很难想象如果没有图层格式,AutoCAD将会是怎样的,但对于初学者,往往把图...

2023-04-20 06:13:18查看全文 >>

cad图层快捷键怎么调出来(cad 图层快速切换键设置)

cad图层快捷键怎么调出来(cad 图层快速切换键设置)

本教程会陆续投放AutoCAD机械制图的基础教程,由于本人也是初学者,水平有限,如有错误,请在评论区留言。我是希望自己在...

2023-04-20 06:18:50查看全文 >>

怎么连接另一台电脑共享的打印机(如何去连接另一台共享的打印机)

怎么连接另一台电脑共享的打印机(如何去连接另一台共享的打印机)

我爸爸在他的卧室里面新置办了一台电脑,上网,看资料,我在我的书房里面一直也有一台电脑。我家里还有一台老款佳能一体机,支持...

2023-04-20 06:13:00查看全文 >>

办公室打印机怎样共享(同办公室怎样共享打印机)

办公室打印机怎样共享(同办公室怎样共享打印机)

前言我们树立“通过局域网实现计算机软件、硬件资源资源共享”的信息技术应用观念之后,就要努力进行资源共享技能的学习和应用,...

2023-04-20 06:20:51查看全文 >>

文档排行