python獲取局域網內的設備,python 幫助 autocad_python 使用pyautocad操作AutoCAD

 2023-10-01 阅读 28 评论 0

摘要:一、python 連接AutoCAD的兩種基本方法1、使用pyautocadpython獲取局域網內的設備、from pyautocad import Autocadpyacad = Autocad(create_if_not_exists=True)pyacad.prompt("Hello! Autocad from pyautocad.")cad二次開發用什么語言,print(pyacad.doc.Na

一、python 連接AutoCAD的兩種基本方法

1、使用pyautocad

python獲取局域網內的設備、from pyautocad import Autocad

pyacad = Autocad(create_if_not_exists=True)

pyacad.prompt("Hello! Autocad from pyautocad.")

cad二次開發用什么語言,print(pyacad.doc.Name)

pyautocad包可以用任何版本的cad進行操作,實際上接口都是一樣的。

第一行:自動連接上cad,只要cad界面是打開的,就創建了一個 對象。這個對象連接最近打開的cad文件。如果此時還沒有打開cad,將會創建一個新的dwg文件,并自動開啟cad軟件。

python二次開發cad教程,第二行:acad.prompt() 用來在cad命令行下打印文字。

第三行:打印剛調取的CAD名字。

2、使用pywin32

import pythoncom

import win32com.client

import math

wincad = win32com.client.Dispatch("AutoCAD.Application")

doc = wincad.ActiveDocument

doc.Utility.Prompt("Hello! Autocad from pywin32com.\n")

msp = doc.ModelSpace

print(doc.Name)

我個人習慣于使用第一種方法。

二、pyautocad畫點線等

1、創建點及直線

startPoint = APoint(5, 25)

endPoint = APoint(25, 35)

# z坐標可空缺,空缺時系統默認其為0,即點Pnt1在CAD中坐標為(5,25,0);

# 系統自動將各坐標轉化為雙精度浮點數。

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

2、畫圓、圓弧等

#圓

CircleCenter = APoint(10, 10)

CircleObj = acad.model.AddCircle(CircleCenter, 5) #圓心,半徑

# AddCircle(圓心, 半徑)

#圓弧

ArcCenter = APoint(20, 10)

ArcObj = acad.model.AddRectangle(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倍;

三、插入圖塊

3.1創建塊

grip = APoint(20, 20)

blockObj = acad.ActiveDocument.Blocks.Add(grip, "Block")

# 新建塊的名稱為"Block";

# grip為塊定位夾點所在位置。

3.2添加圖元到塊

center = APoint(0, 0)

radius = 10

CircleObj = blockObj.AddCircle(center, radius)

center = APoint(40, 10)

majAxis = APoint(10, 0, 0)

EllObj = blockObj.AddEllipse(center, majAxis, 0.5)

3.3插入當前圖中的塊

#插入點的坐標位置

insertionPnt1 = APoint(y, x)

#插入塊1"block"和塊2"block2"

RetVal = acad.model.InsertBlock(insertionPnt1, "block", 1, 1, 1, 0 )

RetVal = acad.model.InsertBlock(insertionPnt1, "block2", 1, 1, 1, 0 )

3.4外部文件作為塊插入

insertionPnt = APoint(10, 0)

RetVal = acad.model.InsertBlock(insertionPnt, "D:\AutoCAD\Harbin.dwg", 1, 1, 1, 0 )

# 外部文件名盡量與當前文件中的各塊名稱不同;

# 插入后外部文件名將作為其在當前文件中的塊名;

# 外部文件的坐標原點為其作為塊的定位夾點。

四、單行文字

4.1插入單行文字

textString = "Harb Insti of Tec"

insertPnt = APoint(0, 0)

height = 2.5

textObj = acad.model.AddText(textString, insertPnt, height)

# textString:文本內容;height:字高;

# 系統默認對齊夾點位于文字基線左側;

# 采用系統默認對齊方式時,insertPnt為對齊夾點的位置坐標;

# 當用戶自定義對齊方式時,insertPnt以對齊方式中的為準。

4.2對齊方式

AlignNum = 7

textObj.Alignment = AlignNum

# AlignNum為對齊夾點位置標識號,其取值范圍為[0,14];

# 0 基線左對齊、1 基線居中對齊、2 基線右對齊;

# 7 表示對齊夾點位于 top cennter;

insertPnt = APoint(0, 10)

textObj.TextAlignmentPoint = insertPnt

# 設置對齊夾點在圖紙空間中的絕對位置,可為任意一已知點;

# 若用戶自定義對齊方式,則需設置此項。

4.3文本縮放

BasePoint = insertPnt

ScaleFactor = 5

textObj.ScaleFactor = 5

# 水平方向文本縮放,即只縮放字寬(x方向),不縮放字高(y方向);

# ScaleFactor為比例系數,非負,>1為放大,<1為縮小。寬度因子

textObj.ScaleEntity(BasePoint, ScaleFactor)

# 兩個方向同步縮放;

# 基點與insertPnt重合,文字放大后對齊夾點位置保持不變。

五、多行文字

5.1文字樣式

txtStyleObj = acad.ActiveDocument.TextStyles.Add("HIT_TxtStyle")

5.2將特定文字樣式設為當前

acad.ActiveDocument.ActiveTextStyle = acad.ActiveDocument.TextStyles.Item("Standard")

5.3為當前文本樣式設置字體

acad.ActiveDocument.ActiveTextStyle.SetFont("楷體", False, False, 1, 0 or 0)

# acad.ActiveDocument.ActiveTextStyle.SetFont(Typeface, Bold, Italic, charSet, PitchandFamily)

# Typeface 字體名稱;

# Bold 加粗,布爾值,False為不加粗字體;

# Italic 傾斜,布爾值,False為傾斜字體;

# CharSet 字體字符集,1為默認字符集;

# PitchAndFamily 字節及筆畫形式。

5.4為特定文本樣式設置字體

acad.ActiveDocument.TextStyles.Item("HIT_TxtStyle").SetFont("宋體", False, False, 1, 0 or 0)

5.5設置字體傾斜角度

txtStyleObj.ObliqueAngle = math.radians(30)

# 傾斜角度變化范圍為[-85,85],取正值時右偏。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/108500.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息