pyautocad相关操作案例

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
  • 9
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值