python写cad命令_pyautocad 的一些简单操作指令

最近一段时间在学习使用python控制autocad的一些简单指令

通过一些资料的查阅 整理了一些简单的命令及简单的绘图指令

基础设置

连接cad

from pyautocad import Autocad

acad = Autocad(create_if_not_exists=True)

# 连接正在运行的CAD程序;

# CAD文件采用默认名称Drawing1。

acad.prompt("Hello! Autocad from Python.")

# 在CAD命令行显示"Hello! Autocad from Python.",用于测试对CAD的控制是否成功;

# 此时,注意观察命令行,若无反应可按F2,查看命令输入历史。

# 获得与Python连接的正在运行的CAD文件名

新建文件

DrawingObj = acad.ActiveDocument.Application.Documents.Add("")

# 无法直接命名,新建的文件为系统默认名称,即Drawing1、Drawing2等;

# 若更改名称,在关闭时定义。

颜色设置

## (1)、设置模型空间背景色

acad.ActiveDocument.Application.preferences.Display.GraphicsWinModelBackgrndColor = 0

# 等号后为非负整数,取值范围为[0,16777215],为十进制下的颜色代号,由RGB颜色值转化而来;

## 设置十字光标颜色

acad.ActiveDocument.Application.preferences.Display.ModelCrosshairColor = 16777215

设置十字光标大小

acad.ActiveDocument.Application.preferences.Display.CursorSize = 5

# 等号后取1到100的整数,表示十字光标占屏幕面积的百分比,10代表占比为10%,系统默认值为5。

显示线宽

acad.ActiveDocument.preferences.LineweightDisplay = 1

# 等号后为布尔值,TRUE = 1,显示线宽,FALSE = 0,隐藏线宽。

设置点大小

acad.ActiveDocument.SetVariable("PDSIZE", 10)

设置文件自动保存

acad.ActiveDocument.Application.preferences.OpenSave.AutoSaveInterval = 0.51

# 等号后数值为自动保存间隔分钟数,非负,可为小数;

绘图

创建点及直线

startPoint = APoint(5, 25)

endPoint = APoint(25, 35)

# z坐标可空缺,空缺时系统默认其为0,即点Pnt1在CAD中坐标为(5,25,0);

# 系统自动将各坐标转化为双精度浮点数。

LineObj = acad.model.AddLine(startPoint, endPoint)

CircleCenter = APoint(10, 10)

CircleObj = acad.model.AddCircle(CircleCenter, 5)

# AddCircle(圆心, 半径)

圆弧

ArcCenter = APoint(20, 10)

ArcObj = acad.model.AddArc(ArcCenter, 5, math.radians(-60), math.radians(60))

# AddArc(圆心,半径,始边角度(弧度制),终边角度(弧度制))

椭圆

EllCenter = APoint(40, 10, 0)

majAxis = APoint(5, 0, 0)

EllObj = acad.model.AddEllipse(EllCenter, majAxis, 0.5)

# 该椭圆以EllCenter为椭圆中心,长轴一端点为(45, 10, 0),且短轴长度为长轴的0.5倍;

实体填充(现在还没有找到如何填充圆形的方法)

Pnt1 = APoint(65, 5, 0)

Pnt2 = APoint(65, 35, 0)

Pnt3 = APoint(75, 5, 0)

Pnt4 = APoint(75, 35, 0)

solidObj = acad.model.AddSolid(Pnt1, Pnt2, Pnt3, Pnt4)

其他

import pyautocad.types

pyautocad.types.distance(Pnt1, Pnt1) # 计算点Pnt1和点Pnt2间的距离

print(Pnt1)

print(tuple(Pnt1)) # 将点Pnt1坐标转化为元组

print(list(Pnt1)) # 将点Pnt1坐标转化为列表

print(Pnt1+Pnt2) # 两点对应坐标相加,也支持其他数学运算。

LineObj.layer = "Python" # 指定图层

LineObj.Linetype = "ACAD_ISO05W100" # 指定线型

LineObj.LinetypeScale = 1 # 设置线型比例

LineObj.Lineweight = 200 # 设置线宽

clr = acad.ActiveDocument.Application.GetInterfaceObject ("AutoCAD.AcCmColor.19")

clr.SetRGB(255, 0, 255) # R=255,G=0,B=255。

solidObj.TrueColor = clr # 指定实体填充的RGB颜色

这是最近通过autocad画的图

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值