Python AutoCAD 块组

目 录

  • Blog Links
  • 一、连接及库导入
  • 二、块
    • 2.1. 创建新块
    • 2.2. 添加图元到块
    • 2.3. 插入块
      • 2.3.1. 从当前文件中插入块
      • 2.3.2. 外部文件作为块插入
    • 2.4. 添加属性到块
      • 2.4.1. 当前文件创建的块属性添加
      • 2.4.2. 外部文件作为插入块的属性添加
    • 2.5. 已有块属性的读取
  • 三、组
    • 3.1. 创建新组
  • 四、尾声



Blog Links


  • DalNur | 博客总目录

  • Python 二次开发 AutoCAD 简介

  • Python 二次开发 AutoCAD 设置

  • Python 二次开发 AutoCAD 图层

  • Python 二次开发 AutoCAD 绘图

  • Python 二次开发 AutoCAD 修改

  • Python 二次开发 AutoCAD 块组

  • Python 二次开发 AutoCAD 注释

  • Python 二次开发 AutoCAD 文件

  • Python 二次开发 AutoCAD 选择集





一、连接及库导入

#!/usr/bin/env python
# -*- coding: utf-8 -*-'''
=============================
Author: DalNur
Email: liyang@alu.hit.edu.cn
=============================
'''from pyautocad import Autocadacad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! AutoCAD from pyautocad.")
print(acad.doc.Name)

二、块

  创建的是Block。


  To create a block reference, first you must create a block definition, or block, by using the Add method. Once created, you can insert an instance of this block into your drawing using the InsertBlock method.


  To add or delete items from the block reference, you must first use the Explode method to break it into its component objects. Even though a block reference is broken into its component objects, the block definition still remains in the drawings block symbol table.


2.1. 创建新块

grip = APoint(20, 0)
blockObj = acad.ActiveDocument.Blocks.Add(grip, "HIT_Block")# 新建块的名称为"HIT_Block";# grip为块定位夹点所在位置。

2.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)

2.3. 插入块

  Block插入到图纸空间后为BlockReference。

2.3.1. 从当前文件中插入块

insertionPnt = APoint(0, 0)
RetVal = acad.model.InsertBlock(insertionPnt, "HIT_Block", 1, 1, 1, 0 )# acad.model.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation);# insertionPnt为块的插入点,即块的定位夹点与图纸空间中的该点对齐。

2.3.2. 外部文件作为块插入

insertionPnt = APoint(10, 0)
RetVal = acad.model.InsertBlock(insertionPnt, "D:\AutoCAD\Harbin.dwg", 1, 1, 1, 0 )# 外部文件名尽量与当前文件中的各块名称不同;# 插入后外部文件名将作为其在当前文件中的块名;# 外部文件的坐标原点为其作为块的定位夹点。

2.4. 添加属性到块

2.4.1. 当前文件创建的块属性添加

height = 1  # 字高
mode = 2    # 模式
prompt = "Attribute_Prompt"  # 提示
insertionPoint = APoint(0, 0)
tag = "Attribute_Tag"        # 标记
value = "Attribute_Value"    # 默认
attributeObj = blockObj.AddAttribute(height, mode, prompt, insertionPoint, tag, value)

2.4.2. 外部文件作为插入块的属性添加

blocks_nums = acad.ActiveDocument.Blocks.count# 图纸空间中块的总数目
blocks_names = [acad.ActiveDocument.Blocks.Item(i).Name for i in range(blocks_nums)]# 图纸空间所有块的名称组成的列表
index = blocks_names.index("Harbin")# 外部文件块"Harbin"在图纸空间块中的索引号
external_blockObj = acad.ActiveDocument.Blocks.Item(index)# external_blockObj即为外部插入到本地文件中的块
ex_att_Obj = external_blockObj.AddAttribute(height, mode, prompt, insertionPoint, tag, value)

2.5. 已有块属性的读取

# RetVal = object.GetAttributes() 此方法在不借助其他库的情况下如何使用暂时未知;
# 采用把块炸开将属性部分暴露出来,然后提取其相关信息的方式获取属性信息;
# 此方式虽然曲折,但至少可行;
# 为了清晰直观,文本代码暂未考虑效率问题,故代码行数较多。# 不采用如下方式,直接炸开块会报错。try:RetVal.Explode()  # 炸开块
except:RetVal.Delete()   # 删除重复for obj in acad.iter_objects("AttributeDefinition"):# 以下获取块的属性信息# 如果想获取某一特定块的属性信息可以用ObjectID识别特定块print(obj.ObjectName)print(obj.TagString)print(obj.TextString)print(obj.PromptString)

三、组

3.1. 创建新组

groupObj = acad.ActiveDocument.Groups.Add("Harbin Institute of Technology")# 新建组的名称为"Harbin Institute of Technology"

四、尾声

  以上,便是关于 AutoCAD块组 的一些基本代码,因篇幅有限,某些非关键功能未做详细介绍,如有疑问,欢迎邮件来询。

  本文部分功能的实现离不开广大博友的大力帮助,有些功能看似简单,但第一次实现出来却是相当不容易的。

  鉴于,相关示例代码相对较少,特写本文,一方面是为自己的阶段性学习做一个总结,另一方面更是为有需要的人提供多一点参考。

  如果您已实现一些本文未提及的功能,还请在评论区呈现,以便为后续学习者提供更多的帮助。

  胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的pāo子里快乐徜徉。

  因本人野生学习Python,水平确实有限,文中难免有所疏漏,还请各位大神不吝批评指正。

  最后,祝各位攻城狮们,珍爱生命,保护发际线!

  本文部分内容,源于网络!

  欢迎大家点赞、评论及转载,转载请注明出处!

  为我打call,不如为我打款!

  打赏可备注邮箱,本人将赠送本系列博客的全部 Python 源代码。



在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253035.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

CAD中组(Group)如何应用,编组和图块有何区别?

图块大家用得都比较多了,但组(Group)用到的人并不多,因为在AutoCAD菜单里似乎找不到这个命令,在浩辰CAD倒是提供了“组工具”的工具栏,在扩展工具里,可以快速创建和分解组。 组到底有什么用呢?组和图块有什…

正能量分享

♡ ⁰2 ♫ 10.18 星期二 ﹊﹊﹊﹊﹊﹊﹊﹊﹊ 这个世界上 不确定的事太多了 唯一可以确定的人 你不努力 没人给你想要的生活 你不改变 没人给你想要的人生

宝付国际公益:温暖在行动,回馈社会正能量

宝付国际宣布启动公益计划,此举意味着这家年轻的第三方支付企业在积极提升产品服务、促进企业发展的同时,也逐渐承担起更多的社会责任。 宝付国际公益活动的第一站来到了上海宝贝之家病患儿童关爱中心,在这次活动中,宝付国际拨出…

弘扬善文化·传递正能量

“善”是中华民族几千年的传统美德,在历史的发展中,把“仁”“德”“善”三者融合在一起,形成了文化传统的特性,使其内涵更加丰富、深邃。为弘扬“善”文化,2023年3月1日,同悦社工在群力镇“青村茶舍”乡村…

Emm_V4.2步进闭环驱动器说明书Rev1.1

一、产品介绍 1.1 产品简介: Emm42_V4.x步进闭环驱动器是张大头智控为满足广大用户需求而自主研发的一款稳定可靠的产品,它是基于上一代Emm42_V3.6版本升级而来,不仅延续了其优秀的FOC矢量闭环控制算法,更在其传统的Dir/Step控制模…

电脑怎么修改照片尺寸?图片改大小如何改?

如何使用电脑改变图片大小?推荐处理图片的小伙伴使用图片改尺寸工具--压缩图,下面来看看图片改大小的具体方法。 1、使用电脑浏览器打开压缩图网站选择图片改大小。 2、上传图片文件、设置好想要的尺寸。 3、处理完后下载即可。 只需三步就可以将图片尺寸…

怎么编辑图片尺寸?如何编辑照片大小?

经常处理图片的小伙伴,一定经常会遇到在某个平台上传图片时显示图片尺寸过大,无法上传,所以遇到需要图片大小修改时,该怎么处理呢?下面告诉大家一个编辑图片大小(https://www.yasuotu.com/size)…

如何改变照片的大小kb?照片怎么改到100kb?

在平时的日常工作生活当中,我们都会遇到需要上传照片的情况,但是随着拍摄的照片越来越清晰照片体积也越来越大,很容易遇到图片太大上传不成功的情况,那么这时候应该怎么办呢?今天来给大家分享一款照片压缩器&#xff0…

如何改图片像素大小?照片怎么改大小?

在我们想要把图片打印出来或者设置成屏保的时候,都会按照自己要求去修改照片大小(https://www.yasuotu.com/size),很多时候照片尺寸修改起来会比较麻烦。这里小编告诉大家一个特别简单的图片改大小的方法,利用我们的图…

怎么压缩照片大小?照片怎么改大小kb?

随着现在拍摄设备像素的提升,现在拍照得到的照片越来越清晰,但是同时也让照片的大小kb变得越来越大,这让我们在使用的时候经常会碰到由于大小限制照片无法上传的情况,很多小伙伴在碰到这种情况的时候都不知道该怎么办了。今天就让…

如何修改照片的尺寸大小

如何修改照片的尺寸大小?我们每天都可能需要使用到照片,照片的尺寸有时候不符合我们的实际使用需求,这时候就需要对照片的尺寸进行修改,虽然修改照片尺寸是一件比较简单的事情,不过还是有一部分小伙伴不知道如何操作。…

将照片修改成一寸大小

因论文投稿需要作者一寸照片,记录一下方法。准备好需要修改的照片,按照一下步骤进行: 用 画图 打开照片。鼠标右击选择打开方式,选择画图打开如下图所示,打开照片后,选择左上角的 重新调整大小 &#xff0…

怎么修改照片文件的大小?教你一招改变图片大小尺寸

有时候在使用的图片的时候会遇到图片尺寸过大的情况,遇到这种情况的时候一些新手小白是不是比较迷茫不知道该如何是好呢?别着急,下面小编就给大家推荐一款简单好用非常适合新手的图片改大小(https://www.yasuotu.com/size&#xf…

如何调整照片的大小?电脑怎么修改图片大小尺寸?

我们下载的图片尺寸大小都不一样,如果想要图片尺寸修改大小就需要对图片处理一下,单张图片处理的话很简单,但是如果批量调整照片大小尺寸的话就比较麻烦。所以下面来介绍一个图片改大小(在线修改图片尺寸大小工具-压缩图&#xff…

湖南四大姓氏世家,李姓排第一,看看你是不是名门望族之后?

“三湘四水”、“洞庭湖南”,我们一提到湖南,就会想起岳阳楼、古越楼台、君山银针。而湖南独有的湘楚文化也为这个人杰地灵的省份留下丰厚的人文底蕴,其中姓氏文化是非常重要的一部分。湖南四大姓氏世家你了解多少?“宗祠文化之都…

照片怎么改大小300k?图片怎么压缩到指定大小?

我们在上传照片的时候经常会提示照片大小超过上限,需要将照片压缩到300k以下,那么照片怎么改大小300k呢?这里推荐大家使用压缩图片的图片压缩指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图)工具&#…

批量修改图片名称且改为不同名字

批量修改图片名称且改为不同名字!这算是一种比较常见的批量修改文件名称的方式了,将文件名批量修改为不同的名称,所谓批量修改就是一次性修改大量文件名的意思,有别于传统的一个一个修改,批量修改文件名讲究的是效率&a…

照片的分辨率可以改吗?怎么改照片分辨率大小?

大家现在报名或者注册信息时,会对上传照片有分辨率要求,我们拍摄的照片往往都达不到要求,所以必须通过修改图片分辨率来解决。那么怎么才能修改分辨率(在线修改照片分辨率(DPI) 调整图片DPI 照片dpi修改工具…

手机上照片大小怎么改?如何用手机修改图片尺寸?

现在有时候在处理图片的时候,我们都习惯用手机,比较方便而且随时随地可以操作,但是还有许多小伙伴不知道手机上照片大小怎么改。今天小编就来分享一下在手机上修改图片大小的方法,利用图片改大小(在线修改图片尺寸大小…

如何改计算机二级照片大小,怎么修改照片大小内存,尺寸

想必大家都有这种经历,在需要上传图片的时候,系统提示文件太大,那这种情况我们应该怎么办?除了用“PS”这么复杂的处理办法,还有可以更简单的办法解决哦,接下来告诉你! 操作方法1 01查看照片原尺…