找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 943|回复: 2

[原创] py操作cad -----通过 activeX com接口

[复制链接]

已领礼包: 5个

财富等级: 恭喜发财

发表于 2019-10-16 13:05:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 kk8389 于 2019-10-16 15:05 编辑



from pyautocad import Autocad,APoint,aDouble

acad = Autocad(create_if_not_exists=True)
    # 连接正在运行的CAD程序;
    # 若CAD未运行,则程序自动开启CAD,启动较慢,请耐心等待。

acad.prompt("Hello! Autocad from Python.")
    # 在CAD控制台输出'Hello, Autocad from Python',用于测试对CAD的控制是否成功。

# 修改模型空间名称

print(acad.doc.Name)
    # 获得与Python连接的正在运行的CAD文件名




from pyautocad import APoint
import math

center = APoint(0, 0)
majAxis = APoint(10, 0, 0)
EllObj = acad.model.AddEllipse(center, majAxis, 0.3)

" # *********************************************** 1、复制及删除 ********************************************** # "

# 1、复制及删除

copyObj = EllObj.Copy()
    # 原位置复制,复制的图元与原图元重合。

copyObj.Delete()

" # *********************************************** 2、平移及旋转 ********************************************** # "

# 2、平移及旋转

startPnt = APoint(0, 0)
endPnt = APoint(30, 0)
EllObj.Move(startPnt,endPnt)

BasePoint = APoint(0, 0)
RotationAngle = math.radians(30)
EllObj.Rotate(BasePoint, RotationAngle)
    # BasePoint为旋转基点,即旋转轴过此点且平行于z轴;
    # RotationAngle为旋转角度(弧度制),角度正负由右手系确定。

" # *********************************************** 3、镜像及缩放 ********************************************** # "

# 3、镜像及缩放

startPnt = APoint(50, 50)
endPnt = APoint(50, -50)
MirObj = EllObj.Mirror(startPnt, endPnt)
    # Point1为镜像线起点,Point2为镜像线终点;
    # 镜像后原图元不删除。

BasePoint = APoint(0, 0)
ScaleFactor = 5
SclEntObj = EllObj.ScaleEntity(BasePoint, ScaleFactor)
     # ScaleFactor为缩放比例。

" # ************************************************** 4、阵列 ************************************************* # "

# 4、阵列

## (1)、矩形阵列
numberOfRows = 5
numberOfColumns = 5
numberOfLevels = 1
distanceBwtnRows = 20
distanceBwtnColumns = 20
distanceBwtnLevels = 1
retObj = EllObj.ArrayRectangular(numberOfRows, numberOfColumns, numberOfLevels,
                                 distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)

## (2)、环形阵列
centerPoint = APoint(30, 0)
noOfObjects = 4
angleToFill = 3.14
retObj = EllObj.ArrayPolar(noOfObjects, angleToFill, centerPoint)

# 报错但能正常显示阵列后的图形。


" # **************************************************** END *************************************************** # "


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 299个

财富等级: 日进斗金

发表于 2019-11-21 08:15:56 | 显示全部楼层
向楼主学习,这个紧跟时代啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2020-5-11 13:32:45 | 显示全部楼层
本帖最后由 takeeasy 于 2020-5-11 13:36 编辑

学习一下学习一下学习一下学习一下谢谢楼主
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 00:11 , Processed in 0.335813 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表