阿陽的 AutoCAD 二次開發簡明教程,本系列博客僅用於個人學習,除此之外,無其他任何用途。
Blog Links
- Python 二次開發 AutoCAD 簡介
- Python 二次開發 AutoCAD 系統設置
- Python 二次開發 AutoCAD 圖層
- Python 二次開發 AutoCAD 繪圖
- Python 二次開發 AutoCAD 修改
- Python 二次開發 AutoCAD 塊組
- Python 二次開發 AutoCAD 註釋
- Python 二次開發 AutoCAD 文件
- Python 二次開發 AutoCAD 選擇集
因個人能力有限,該系列博客難免有所疏漏/錯誤,不妥之處還請各位批評指正。
一、前沿
本文采用 pyautocad 庫連接 CAD ,代碼如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
=============================
Author: DalNur
Email: [email protected]
=============================
"""
from pyautocad import Autocad, APoint, aDouble
import math
pyacad = Autocad(create_if_not_exists=True)
pyacad.prompt("Hello! Autocad from pyautocad.")
print(pyacad.doc.Name)
二、複製及刪除
copyObj = EllObj.Copy()
# 原位置複製,複製的圖元與原圖元重合。
copyObj.Delete()
三、平移及旋轉
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爲旋轉角度(弧度制),角度正負由右手系確定。
四、鏡像及縮放
startPnt = APoint(50, 50)
endPnt = APoint(50, -50)
MirObj = EllObj.Mirror(startPnt, endPnt)
# startPnt爲鏡像線起點,endPnt爲鏡像線終點;
# 鏡像後原圖元不刪除。
BasePoint = APoint(0, 0)
ScaleFactor = 5
SclEntObj = EllObj.ScaleEntity(BasePoint, ScaleFactor)
# ScaleFactor爲縮放比例。
五、陣列
5.1 矩形陣列
numberOfRows = 5
numberOfColumns = 5
numberOfLevels = 1
distanceBwtnRows = 20
distanceBwtnColumns = 20
distanceBwtnLevels = 1
retObj = EllObj.ArrayRectangular(numberOfRows, numberOfColumns, numberOfLevels,
distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)
5.2 環形陣列
centerPoint = APoint(30, 0)
noOfObjects = 4
angleToFill = 3.14
retObj = EllObj.ArrayPolar(noOfObjects, angleToFill, centerPoint)
" 運行上述(1)、(2)代碼報錯,報錯內容爲:KeyError: 9。"
" 報錯原因未知,雖然報錯,但能順利執行,不影響使用。"
" 可利用try...except...finally...機制,處理此類報錯。"
六、尾聲
以上,便是關於 AutoCAD 修改 部分的一些簡單介紹。
因篇幅有限,某些非關鍵功能未做詳細介紹,如有疑問,歡迎郵件來詢。
胸藏文墨懷若谷,腹有詩書氣自華,希望各位都能在知識的 pāo 子裏快樂徜徉。
因本人野生學習 Python ,水平確實有限,文中難免有所疏漏,還請各位大神不吝批評指正。
最後,祝各位攻城獅們,珍愛生命,保護髮際線!
本文部分內容,源於網絡!
歡迎大家點贊、評論及轉載,轉載請註明出處!
爲我打call,不如爲我打款!
打賞可備註郵箱,本人將贈送本系列博客的全部 Python 源代碼。