from pyautocad import Autocad, APoint
import math
import numpy as np
# 与autoCAD创建连接
# 当有正在运行的CAD程序时,则与其建立连接,并始终与活跃中的CAD窗口产生连接
# 当没有时,将启动一个新的CAD程序
acad = Autocad(create_if_not_exists=True)
acad.prompt("Hello, Autocad from Python\n")
print(acad.doc.Name) # 获取连接的CAD文件名
"""---------------------------------------------------------------------------------"""
# 图层相关操作
# 新建图层
new_layer = acad.ActiveDocument.Layers.Add("HIT_Layer")
# 将某图层设置为当前图层
acad.ActiveDocument.ActiveLayer = new_layer
# 设置图层颜色
new_layer.color = 1
# 设置图层线型
new_layer.LineType = "ACAD_ISO02W100"
# 设置图层线宽
new_layer.LineWeight = 0.1
# 设置图层状态
new_layer.LayerOn = True # TRUE: 图层为打开状态;FALSE: 图层为关闭状态
new_layer.Lock = False # TRUE: 图层锁定;FALSE: 图层未锁定
# 指定图层名称
print(new_layer.Name)
# 指定图元的图层
circle = acad.model.AddCircle(APoint(0, 0), 200)
circle.Layer = "HIT_Layer1"
# 批量创建图层
color_list = [1, 2, 3]
layers_name = ["HIT_图层_1", "HIT_图层_2", "HIT_图层_3"]
try:
len(color_list) == len(layers_name)
except:
print("图层颜色号个数与图层个数不匹配")
layers_obj = [acad.ActiveDocument.Layers.Add(i) for i in layers_name]
for j in range(len(layers_obj)):
layers_obj[j].color = color_list[j]
"""---------------------------------------------------------------------------------"""
# 绘图常规操作(复制、移动、缩放........)
# 在同一位置复制给定对象
circle1 = acad.model.AddCircle(APoint(200, 200), 200)
circle2 = circle1.Copy()
# 将图元对象从源向目标移动
circle2.Move(APoint(0, 0), APoint(100, 0))
# 围绕轴创建平面对象的镜像图像副本
# RetVal = object.Mirror(Point1, Point2)
circle2.Mirror(APoint(0, 0), APoint(100, 0))
# 删除指定对象或一组保存了的图层设置
circle1.Delete()
# 获取对象与图形中其它对象的相交点
# RetVal = object.IntersectWith(IntersectObject, ExtendOption)
# ExtendOption:该选项指定两个对象中是否没有、单个或两个对象延伸来得到交点
# 0 = acExtendNone 两个对象均不延伸
# 1 = acExtendThisEntity 延伸基本对象。
# 2 = acExtendOtherEntity 延伸作为参数传递的对象。
# 3 = acExtendBoth 延伸两个对象
line1 = acad.model.AddLine(APoint(1000, 0), APoint(1500, 500))
line2 = acad.model.AddLine(APoint(1000
pyautocad相关操作案例
最新推荐文章于 2025-03-11 20:05:45 发布