• Python AutoCAD 绘图 2020-06-18 09:33:04
    创建点及直线...... 添加多段线及样条曲线...... 添加含圆弧多段线...... 设置多段线线宽...... 添加圆及圆弧...... 添加椭圆及椭圆弧...... 倒角矩形绘制...... 图案填充......
    @[TOC](目 录)
    
    
    
    
    
    
    # Blog Links
    
    
    
     - [Python 二次开发 AutoCAD 简介](https://blog.csdn.net/Hulunbuir/article/details/83715279) 
    
     - [Python 二次开发 AutoCAD 系统设置](https://blog.csdn.net/Hulunbuir/article/details/96587211)
    
     - [Python 二次开发 AutoCAD 图层](https://blog.csdn.net/Hulunbuir/article/details/96588654)
    
     - [Python 二次开发 AutoCAD 绘图](https://blog.csdn.net/Hulunbuir/article/details/96589272)
    
     - [Python 二次开发 AutoCAD 修改](https://blog.csdn.net/Hulunbuir/article/details/97393167 )
    
     - [Python 二次开发 AutoCAD 块组](https://blog.csdn.net/Hulunbuir/article/details/97393463)
    
     - [Python 二次开发 AutoCAD 注释](https://blog.csdn.net/Hulunbuir/article/details/97394254)
    
     - [Python 二次开发 AutoCAD 文件](https://blog.csdn.net/Hulunbuir/article/details/97395152)
    
     - [Python 二次开发 AutoCAD 选择集](https://blog.csdn.net/Hulunbuir/article/details/95446723)
    
    
    
    
    
    
    
    
     转载请注明出处!
    
    
    
    
    
    
    # 一、前沿
    
    
    
    
      各种图元的绘制是 CAD 绝对的核心功能,CAD 主要能实现如下图所示的图元绘制,包括常见的,直线、多段线、圆、图案填充、单行文字、多行文字、标注等等。
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200508102854506.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020051813563773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    AutoCAD绘图菜单
    
    
    
      本文主要采用 pyautocad 库及 pywin32 库连接 CAD,两种连接方式如下:
    
    
    
    
    
    
     - pyautocad
    
    ```py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
        =============================
        Author: DalNur
        Email: liyang@alu.hit.edu.cn
        =============================
    """
    
    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)
    ```
    
    
    
    
     - pywin32
    
    
    ```py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
        =============================
        Author: DalNur
        Email: liyang@alu.hit.edu.cn
        =============================
    """
    
    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)
    ```
    
    
    ```python
    def vtpnt(x, y, z=0):
        return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))
    
    
    def vtobj(obj):
        return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)
    
    
    def vtfloat(lst):
        return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, lst)
    ```
    
    
    
    
    
    
    
    
    
    
    # 二、创建点及直线
    
    
    
    1. 设置点显示
    
    ```python
    pyacad.ActiveDocument.SetVariable("PDMODE", 35)  # 设置点样式的显示方式
    pyacad.ActiveDocument.SetVariable("PDSIZE", 2)  # 设置点大小
    ```
    
    
    
    2. pyautocad绘直线
    
    ```py
    startPoint = APoint(5, 8)  # z坐标可空缺,空缺时系统默认其为0,即点Pnt1在CAD中坐标为(5,25,0)。
    endPoint = APoint(20, 15)  # pyautocad自动将各坐标转化为双精度浮点数。
    lineObj = pyacad.model.AddLine(startPoint, endPoint)
    ```
    
    
    
    3. pywin32绘制点
    
    ```python
    startPntCoords = vtpnt(5, 5)
    startPoint = msp.AddPoint(startPntCoords)
    
    endPntCoords = vtpnt(20, 20)
    endPoint = msp.AddPoint(endPntCoords)
    ```
    
    
    
    4. pywin32绘直线
    
    ```python
    lineObj = msp.AddLine(startPntCoords, endPntCoords)
    ```
    
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200509174941200.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    # 三、绘制多段线及样条曲线
    
    
    
    ## 3.1 绘制普通多段线
    
    
    
    1. pyautocad绘多段线
    ```py
    # 创建图元
    pnts = [APoint(5, 5), APoint(10, 5), APoint(20, 20), APoint(25, 20)]
    pnts = [j for i in pnts for j in i]  # 将各点坐标顺序变换为1行多列的1维数组。
    pnts = aDouble(pnts) # 数据类型转化为双精度浮点数
    plineObj = pyacad.model.AddPolyLine(pnts)
    
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    plineObj.TrueColor = clr  # 指定颜色
    
    
    # 设置线宽
    segmentIndex = 2  # 多段线的段号,从0起计数。
    startWidth = 0.5  # 段起点处线宽
    endWidth = 1.0  # 段终点处线宽
    plineObj.SetWidth(segmentIndex, startWidth, endWidth)  # 为多段线plineObj的第3段设置变宽度线宽
    
    
    pyacad.ActiveDocument.preferences.LineweightDisplay = 1  # 显示线宽
    
    
    pyacad.ActiveDocument.Application.ZoomAll()
    pyacad.ActiveDocument.Application.Update()
    ```
    
    
    
    2. pywin32绘多段线
    
    ```py
    # 创建图元
    pnts = [5, 20, 0, 10, 20, 0, 20, 5, 0, 25, 5, 0]
    points = vtfloat(pnts)
    plineObj = msp.AddPolyline(points)
    
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    plineObj.TrueColor = clr  # 指定颜色
    
    
    # 设置线宽
    segmentIndex = 0  # 多段线的段号,从0起计数。
    startWidth = 1.0  # 段起点处线宽
    endWidth = 0.5  # 段终点处线宽
    plineObj.SetWidth(segmentIndex, startWidth, endWidth)  # 为多段线plineObj的第1段设置变宽度线宽
    
    
    doc.preferences.LineweightDisplay = 1  # 显示线宽
    
    
    doc.Application.ZoomAll()
    doc.Application.Update()
    ```
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200517121151990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    ## 3.2 绘制含圆弧多段线
    
    
    
      详见博客:[Python 二次开发 AutoCAD 简介](https://blog.csdn.net/Hulunbuir/article/details/83715279) >> 七、绘图 >> 7.1 倒角矩形 。
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516154641951.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    ## 3.4 绘制样条曲线
    
    
    
    ```py
    splinePnts = [APoint(5, 12), APoint(12, 5), APoint(18, 8), APoint(25, 5)]
    splinePnts = [j for i in splinePnts for j in i]
    splinePnts = aDouble(splinePnts)
    startTan = APoint(1, -10)  # startTan为样条曲线起点处切线的方向向量。
    endTan = APoint(1, -5)  # endTan为样条曲线终点处切线的方向向量。
    SplineObj = pyacad.model.AddSpline(splinePnts, startTan, endTan)
    ```
    
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516160530263.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    # 四、绘制圆及圆弧
    
    
    
    ## 4.1 绘制圆
    
    
    
    
    1. pyautocad
    
    ```py
    # 创建图元
    center = APoint(5, 5)  # 圆心
    radius = 4  # 半径
    circleObj = pyacad.model.AddCircle(center, radius)
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    circleObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    
    2. pywin32
    
    ```py
    center, radius = vtpnt(5, 5, 0), 2
    circleObj = msp.AddCircle(center, radius)
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    circleObj.TrueColor = clr  # 指定颜色
    ```
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020051712142893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    ## 4.2 绘制圆弧
    
    
    
      An arc is always drawn counterclockwise from the start point to the endpoint. The StartPoint and EndPoint properties of an arc are calculated through the ***StartAngle***, ***EndAngle***, and ***Radius*** properties.
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200517122329198.png#pic_center)
    
    
    
    1. pyautocad
    
    ```py
    # 创建图元
    center = APoint(5, 5)  # 圆心
    radius = 4  # 半径
    startAngle = math.radians(-60)  # 始边角度(弧度制)
    endAngle = math.radians(60)  # 终边角度(弧度制)
    arcObj = pyacad.model.AddArc(center, radius, math.radians(-60), math.radians(60))
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    arcObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    2. pywin32
    
    ```py
    # 创建图元
    center, radius = vtpnt(5, 5, 0), 2
    startAngle = math.radians(-60)  # 始边角度(弧度制)
    endAngle = math.radians(60)  # 终边角度(弧度制)
    arcObj = msp.AddArc(center, radius, math.radians(-60), math.radians(60))
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    arcObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200517124407853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    # 五、绘制椭圆及椭圆弧
    
    
    
    
    ## 5.1 绘制椭圆
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518112355142.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    1. pyautocad
    
    ```py
    # 创建图元
    center = APoint(8, 5, 0)  # 椭圆中心
    majAxis = APoint(5, 0, 0)  # majAxis为主轴(长轴)端点相对于椭圆中心的坐标增量。
    radRatio = 0.5  # 短长轴之比为0.5
    ellObj = pyacad.model.AddEllipse(center, majAxis, radRatio)
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    ellObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    2. pywin32
    
    ```py
    # 创建图元
    center = vtpnt(13, 5, 0)  # 椭圆中心
    majAxis = vtpnt(5, 0, 0)  # majAxis为主轴(长轴)端点相对于椭圆中心的坐标增量。
    radRatio = 0.5  # 短长轴之比为0.5
    ellObj = msp.AddEllipse(center, majAxis, radRatio)
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    ellObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518105447282.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    ## 5.2 绘制椭圆弧
    
    
    
    1. pyautocad
    
    
    ```py
    # 创建图元
    center = APoint(-3, 5, 0)  # 椭圆中心
    majAxis = APoint(5, 0, 0)  # majAxis为主轴(长轴)端点相对于椭圆中心的坐标增量。
    radRatio = 0.5  # 短长轴之比为0.5
    ellObj = pyacad.model.AddEllipse(center, majAxis, radRatio)
    ellObj.startAngle = -90 * (3.14 / 180)
    ellObj.endAngle = 90 * (3.14 / 180)
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    ellObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    
    
    2. pywin32
    
    ```py
    # 创建图元
    center = vtpnt(3, 5, 0)  # 椭圆中心
    majAxis = vtpnt(5, 0, 0)  # majAxis为主轴(长轴)端点相对于椭圆中心的坐标增量。
    radRatio = 0.5  # 短长轴之比为0.5
    ellObj = msp.AddEllipse(center, majAxis, radRatio)
    ellObj.startAngle = 90 * (3.14 / 180)
    ellObj.endAngle = -90 * (3.14 / 180)
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    ellObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518111616281.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    
    
    # 六、实体及图案填充
    
    
    
    ## 6.1 实体填充
    
    
    
    1. pyautocad
    ```py
    # 创建图元
    pnt1, pnt2, pnt3, pnt4 = APoint(-10, 5, 0), APoint(-10, 10, 0), APoint(-3, 5, 0), APoint(-3, 10, 0)
    solidObj = pyacad.model.AddSolid(pnt1, pnt2, pnt3, pnt4)
    
    # 指定颜色
    clr = pyacad.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(0, 0, 255)  # 创建蓝色
    solidObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    2. pywin32
    
    ```py
    # 创建图元
    pnt1, pnt2, pnt3, pnt4 = vtpnt(3, 5, 0), vtpnt(3, 10, 0), vtpnt(10, 5, 0), vtpnt(10, 10, 0)
    solidObj = msp.AddSolid(pnt1, pnt2, pnt3, pnt4)
    
    # 指定颜色
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    clr.SetRGB(255, 0, 0)  # 创建红色
    solidObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518115028264.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    
    
    
    ## 6.2 圆形图案填充
    
    
    
    ```py
    ptnName, ptnType, bAss, center, radius = "ANSI31", 0, True, vtpnt(10, 10, 0), 7
    outerLoop = []
    circleObj = msp.AddCircle(center, radius)
    outerLoop.append(circleObj)
    outerLoop = vtobj(outerLoop)
    hatchObj = msp.AddHatch(ptnType, ptnName, bAss)
    hatchObj.AppendOuterLoop(outerLoop)
    hatchObj.Evaluate()  # 进行填充计算,使图案吻合于边界
    hatchObj.PatternScale = 0.2  # 设置填充图案比例
    ```
    
    
    
      以上代码运行后,效果如下图所示:
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518133846955.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    ## 6.3 闭合多段线图案填充
    
    
    
      详见博客:[Python 二次开发 AutoCAD 简介](https://blog.csdn.net/Hulunbuir/article/details/83715279) >> 七、绘图 >> 7.2 闭合多段线图案填充 。
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200518134257567.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    
    
    
    # 七、绘图次序
    
    
    
      Autodesk AutoCAD 2014: ActiveX Reference Guide 文档中关于绘图次序例子的Python代码如下:
    
    
    
    
    1. Set drawing to display lineweights and create a True Color object.
    
    
    ```python
    doc.preferences.LineweightDisplay = 1  # 显示线宽
    clr = doc.Application.GetInterfaceObject("AutoCAD.AcCmColor.19")
    ```
    
    
    
    2. Draw a polyline
    
    ```python
    points = [4, 4, 0, 3, 5, 0, 6, 20, 0]
    points = vtfloat(points)
    plineObj = msp.AddPolyline(points)
    plineObj.Lineweight = 211  # 设置线宽
    clr.SetRGB(90, 110, 150)
    plineObj.TrueColor = clr  # 指定颜色
    ```
    
    
    
    3. Draw a line
    
    ```python
    startPoint = vtpnt(5, 13)
    endPoint = vtpnt(5, 27)
    lineObj = msp.AddLine(startPoint, endPoint)
    lineObj.Lineweight = 211
    clr.SetRGB(50, 80, 230)
    lineObj.TrueColor = clr
    ```
    
    
    
    4. Draw a circle
    
    
    ```python
    centerPoint = vtpnt(10, 15, 0)
    radius = 5
    circleObj = msp.AddCircle(centerPoint, radius)
    circleObj.Lineweight = 211
    clr.SetRGB(60, 200, 220)
    circleObj.TrueColor = clr
    
    doc.Application.ZoomAll()
    doc.Application.Update()
    ```
    
    
    
    5. Get an extension dictionary and, if necessary, add a SortentsTable object.
    
    
    ```python
    eDictionary = msp.GetExtensionDictionary()
    
    try:
        sentityObj = eDictionary.GetObject("ACAD_SORTENTS")
    except:
        sentityObj = eDictionary.AddObject("ACAD_SORTENTS", "AcDbSortentsTable")
    
    ObjIds = [plineObj.ObjectID, lineObj.ObjectID, circleObj.ObjectID]  # 获取图元ID
    ```
    
    
    
    
    6. Move the circle object to the bottom
    
    ```python
    varObject = doc.ObjectIdToObject(ObjIds[2])  # 获取圆形图元
    # varObject.Delete()  删除圆
    
    varObject = vtobj([varObject, ])
    sentityObj.MoveToBottom(varObject)
    doc.Application.Update()
    ```
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200510143742328.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    # 八、其他
    
    
    ```py
    import pyautocad.types
    pyautocad.types.distance(Pnt1, Pnt2)       # 计算点Pnt1和点Pnt2间的距离
    print(Pnt1)
    print(tuple(Pnt1))                         # 将点Pnt1坐标转化为元组
    print(list(Pnt1))                          # 将点Pnt1坐标转化为列表
    print(Pnt1+Pnt2)                           # 两点对应坐标相加,也支持其他数学运算。
    
    LineObj.layer = "Python"                   # 指定图层
    ```
    
    
    
    # 九、尾声
    
    
    
    
    
    
      以上,便是关于 Python 二次开发 AutoCAD 绘图 的简单介绍。
    
      因篇幅有限,某些非关键功能未做详细介绍,如有疑问,欢迎邮件交流,Email:  。
    
      本文部分功能的实现离不 **ke1078** 同学的大力帮助,有些功能看似简单,但第一次实现却是相当不容易的。
    
      鉴于相关示例代码相对较少,特写本文,一方面是为自己的阶段性学习做一个总结,另一方面更是为有需要的人提供多一点参考。
    
      本文仅用于个人学习,除此之外,无其他任何用途。
    
      因本人野生学习 Python ,水平确实有限,文中难免有所疏漏,还请各位大神不吝批评指正。
    
      胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的 pāo 子里快乐徜徉。
    
      本文最早发表于 2018-12-13 18:20:21,作为博客 [Python 二次开发 AutoCAD 简介](https://blog.csdn.net/Hulunbuir/article/details/83715279) 的一部分。
    
      为了清晰直观,于 2019-07-20 14:23:44 单独创建本文。
    
      本文部分内容,源于网络!
    
      **==欢迎大家点赞、评论及转载,转载请注明出处!==**
    
      **==为我打call,不如为我打款!==**
    
    
      **打赏可备注邮箱,本人将赠送本系列博客的全部 Python 源代码。**
    
    
      最后,祝各位攻城狮们,珍爱生命,保护发际线!
    
    
    
    
    
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020052720442739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1bHVuYnVpcg==,size_16,color_FFFFFF,t_70#pic_center)
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • Python里直接开发cad 2017-11-04 19:31:11
    首先在cmd命令中pip加载pyautocad这个库,这个库是用来开发cad的。接下来没什么好讲的,直接放代码吧,只能说用Python的标准库开发起来实在太简单了。from pyautocad import Autocad,APointacad=Autocad() acad....
  • PythonCAD二次开发(打印) 在CSDN上用CAD做二次开发的文章已经有大神做出来了,本文中也直接把部分代码搬了过来。 现在把打印图纸的代码发上来让大家看看,权当补充说明。 大部分方法查acadauto.chm能查到。 ...
  • cadpython是 Active X 是 pyautocad模块由俄罗斯工程师开发,因参考实例较少,工程需要,现将模块中一些基本的用法,做出简要说明,叙述力求简洁明了, 因个人水平有限,文中难免有所疏漏,还请各位大神不吝...
  • CAD二次开发Python脚本 2020-06-11 08:01:50
    cad二次开发Python脚本类 CAD二次开发中,CAD需要采用加载DLL集,并通过CommandMethod[diameter]的方法可以自动生成图纸,但这里的diameter能否设置成变量值,并且这个变量值与窗体上的文本框内容一至。 我试了一...
  • 目前C/C++、C#、JAVA等语言开发的在线教育比较火爆,但小编所见的讲解高级案例的非常少,切合市场需求的较少。而且针对铁路、公路、建筑、...为此云幽学院推出C++、C#、pythonCAD开发系列课程,致力于拯救要么在加...
  • Python AutoCAD 修改 2020-05-27 20:49:08
    复制及删除...... 平移及旋转...... 镜像及缩放...... 矩形阵列...... 环形阵列......
  • Python AutoCAD 注释 2020-05-27 20:50:44
    文字标注...... 文本样式...... 尺寸标准...... 标注样式...... 多重引线......
  • 跟大多数程序设计语言一样,在了解CAD二次开发所应用的语言、开发环境后,购买了一本《AutoCAD二次开发实用教程》,也将基于这本书记录自己的入门过程。 CAD二次开发所应用的是Visual LISP的编译环...
  • Python AutoCAD 选择集 2020-05-27 20:52:09
    选择集...... 过滤器......
  • 入行前,经常有人说结构工程师很苦很累,天天和CAD的各种Bug斗智斗勇,小编这段时间真切得感受到了(┬_┬),一想到自己职业生涯还有40多年,不禁摸了摸自己的头发和发际线,好想能一键画图出图一条龙啊!...
  • Python开发运用的6大领域 2019-08-19 21:59:45
    Python作为一个整体可以用于任何软件开发领域。下面来看看Python可以应用在哪些领域的开发。如下所列 - 1.基于控制台的应用程序 Python可用于开发基于控制台的应用程序。 例如:IPython。 2.基于音频或视频的应用...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Python爬虫1.4 — requests高级用法教程综述设置请求头(headers)设置代理服务器IP(proxy)Cookies(Session)requests.Session()处理不信任的SSL证书其他博文链接 综述 本系列文档用于对Python爬虫技术的学习进行简单的...
  • 群里有不错的实战教程开发工具与电子书籍 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容 import turtle#引入库函数turtle(画图的小乌龟) def drawSnake(rad, angle, len, ...
  • AutoCAD二次开发之各种表 2019-05-23 11:29:36
    表 解释 表记录 解释 BlockTable 块表:包含模型空间、图纸空间和用户创建的块定义 BlockTableRecord 块表记录:保存了图形数据库中的实体 LayerTable 层表:保存了图形中所有的...TextStyl...
  • CAD二次开发 选择集使用 2016-11-01 09:03:38
    PromptSelectionResult psResult = null; List arrFitOids=new List(); psResult = ed.SelectAll(); if (psResult.Status != PromptStatus.OK) { if
  • Python 二次开发 Word 简介 2020-05-17 15:28:52
    官方文档: Microsoft >> office 开发人员中心 Word GitHub >> MicrosoftDocs/VBA-Docs
  • ARX内部是不需要调用cad命令的。调用 ARX 函数或对象就可以象CAD一样绘制、编辑实体。 在AutoCAD中画直接的命令是line0,01000,100 通过ObjectARX画,新建一个命令cmd1代码如下: 代码 // ----- ArxProject2....
1 2 3 4 5 ... 20
收藏数 1,068
精华内容 427
热门标签