Python AutoCAD 图层



Blog Links






一、连接及库导入

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
=============================
Author = Hulunbuir & DalaiNur
Email: liyang@alu.hit.edu.cn
Last Update: 2019.07.28 14:00
=============================
'''

from pyautocad import Autocad

acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! AutoCAD from pyautocad.")
print(acad.doc.Name)

二、新建图层

LayerObj = acad.ActiveDocument.Layers.Add("HIT_Layer")
     # 添加新图层,图层名称为"HIT_Layer"。
acad.ActiveDocument.ActiveLayer = LayerObj
     # 将"HIT_Layer"图层设置为当前图层。

三、颜色设置

ClrNum = 1
LayerObj.color = ClrNum
     # ClrNum为颜色索引号,其取值范围为[0,256];
     # 标准颜色的颜色索引号指定如下::1 红、2 黄、3 绿、4 青、5 蓝、6 洋红、7 白/黑;
     # 0 ByBlock、256 ByLayer;
     # 其他颜色索引号见 https://wenku.baidu.com/view/9d458b70195f312b3069a505.html。

四、线型设置

acad.ActiveDocument.Linetypes.Load("ACAD_ISO08W100","acadiso.lin")
     # 加载线型,"ACAD_ISO05W100"为线型名称,详细信息见CAD帮助文档;
     # "acadiso.lin"为用于公制单位的线型定义文件,详细信息见CAD帮助文档;
     # 为图层指定线型前,需先加载相关线型;
     # 注意:不能重复加载,否则报错——'记录名重复';
     # 可利用try...except...finally...机制,处理此类报错。

LayerObj.Linetype = "ACAD_ISO08W100"
     # 设置图层线型;
     # 指定线型前,若不想以Load方式加载线型,也可在CAD程序中点击线型>其他>加载,加载全部所用线型;
     # 若既没采用Load方式也没有在CAD程序中手动加载线型,则程序会报错——'未找到主键'。

五、线宽设置

LayerObj.Lineweight = 13
     # 13表示线宽为0.01mm的13倍,即0.13mm;
     # 线宽值∈{0,5,9,13,15,18,20,25,30,35,40,50,53,60,70,80,90,100,106,120,140,158,200,211};
     # 线宽值在上述集合中选取,含义为0.01mm的整数倍;其他数值非系统默认;
     # 可以修改现有线宽,但不能添加或删除线宽,修改在CAD程序中进行。

六、批量创建

clrnums = [1, 2, 3]  
     # 图层颜色列表
layernames = ["HIT_图层_1", "HIT_图层_2", "HIT_图层_3"] 
     # 图层名称列表

try:
    len(clrnums) == len(layernames)
except:
    print("图层颜色号个数与图层个数不匹配")

layerobjs = [acad.ActiveDocument.Layers.Add(i) for i in layernames]  
     # 批量创建图层

for j in range(len(layerobjs)):
    layerobjs[j].color = clrnums[j]
     # 批量指定图层颜色

七、图层读取

layersnums = acad.ActiveDocument.Layers.count  
     # 当前文件模型空间中所包含的图层总数
layernames = [acad.ActiveDocument.Layers.Item(i).Name for i in range(layernums)]
	 # 当前文件模型空间中所包含的所有图层名称
index = layernames.index("HIT_图层_3") 
	 # 获取指定图层索引号
acad.ActiveDocument.ActiveLayer = acad.ActiveDocument.Layers.Item(index)
	 # 将指定图层设定当前

八、尾声


  以上,便是关于 AutoCAD 图层 的一些基本代码,因篇幅有限,某些非关键功能未做详细介绍,如有疑问,欢迎邮件来询。

  本文部分功能的实现离不开广大博友的大力帮助,有些功能看似简单,但第一次实现出来却是相当不容易的。

  鉴于,相关示例代码相对较少,特写本文,一方面是为自己的阶段性学习做一个总结,另一方面更是为有需要的人提供多一点参考。

  如果您已实现一些本文未提及的功能,还请在评论区附上代码,以便为后续学习者提供更多的帮助。

  胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的 pāo 子里快乐徜徉。

  因本人野生学习 Python,水平确实有限,文中难免有所疏漏,还请各位大神不吝批评指正。

  最后,祝各位攻城狮们,珍爱生命,保护发际线!

  本文最早发表于 2018-12-13 18:20:21,作为博客 Python 二次开发 AutoCAD 简介 的一部分。

  为了清晰直观,于 2019-07-20 14:16:23 单独创建本文。

  本文部分内容,源于网络!

  欢迎大家点赞、评论及转载,转载请注明出处!

  为我打call,不如为我打款!

  打赏可备注邮箱,本人将赠送本系列博客的全部 Python 源代码。



在这里插入图片描述




Python 是一种功能强大的编程语言,可以用来自动化处理各种任务,包括建立 CAD 图层。 在 Python 中,可以使用许多库和模块来处理 CAD 图层。其中一个著名的库是 pyautocad,它提供了用于与 AutoCAD 进行交互的功能。 首先,您需要在计算机上安装 AutoCAD 软件以及 pyautocad 库。然后,在 Python 脚本中导入 pyautocad模块,以便可以使用其中的函数和类。 接下来,您可以使用 pyautocad 中的命令来创建和管理 CAD 图层。以下是一个示例脚本,用于在 AutoCAD 中创建一个新的图层: ```python import pyautocad acad = pyautocad.Autocad() # 启动 AutoCAD doc = acad.ActiveDocument # 获取当前文档 new_layer = doc.Layers.Add('NewLayer') # 添加一个名为 'NewLayer' 的新图层 new_layer.color = 2 # 将图层颜色设置为绿色 new_layer.ltscale = 1.0 # 将图层线条比例设置为 1.0 new_layer.lineweight = 50 # 将图层线条粗细设置为 50 acad.ZoomAll() # 自动缩放以适应图层 acad.Quit() # 退出 AutoCAD ``` 在上面的示例中,我们首先通过 `pyautocad.Autocad()` 启动 AutoCAD 并获取当前文档。然后,使用 `doc.Layers.Add()` 函数创建了一个名为 'NewLayer' 的新图层。您可以使用类似的方式设置其他图层属性,如颜色、线条比例和线条粗细。 最后,在完成图层创建后,我们使用 `acad.ZoomAll()` 函数自动缩放以适应新的图层。最后,调用 `acad.Quit()` 退出 AutoCAD。 通过使用 pyautocad 库和类似的方法,您可以进一步扩展和定制您的 CAD 图层创建脚本。这样,您就可以通过编写 Python 脚本来自动化 CAD 图层的创建和管理,提高工作效率。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hulunbuir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值