首部必须
#!/usr/bin/env python
# -*- coding: utf-8 -*-

  

导入pyautocad
import pyautocad

  


import re

# 设置python的默认编码,只针对python2,python3不需要
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

  


# 打开cad文件
acad.ActiveDocument.Application.Documents.Open(path)

例子
acad.ActiveDocument.Application.Documents.Open(r"C:\Users\Administrator\Desktop\cad\南栅南冲口股份经济合作社-宴岗股份经济联合社土地权属界线核定书附图.dwg".decode("utf-8"))

  

# 新建cad文件
DrawingObj = acad.ActiveDocument.Application.Documents.Add("C:\Users\Administrator\Desktop\cad\南栅南冲.dwg")

  


# 连接及库导入
acad = Autocad( create_if_not_exists = True)
acad.ActiveDocument.Application.Documents.Open(r"C:\Users\Administrator\Desktop\cad\南栅南冲口股份经济合作社-宴岗股份经济联合社土地权属界线核定书附图.dwg".decode("utf-8")) print(acad.doc.Name) # 遍历cad文本,并且打印文本及点坐标,text.InsertionPoint[0]为y坐标,text.InsertionPoint[1]为x坐标,text.InsertionPoint为X,Y,Z元组
for text in acad.iter_objects('Text'):
# 如果遍历的文字包含 东莞市虎门镇,打印文本及点坐标
if re.findall(u"东莞市虎门镇",text.TextString):
print text.TextString,text.InsertionPoint[0] for text in acad.iter_objects('Line'):
# 遍历线,如果线颜色等于红色,text.layer打印线图层,text.color线的颜色,text.StartPoint线的开始点,text.EndPoint结束点
if text.color == 1:
print text.layer
print text.color
print text.StartPoint,text.EndPoint # 如果该线段是直线,打印线开始结束点
if text.StartPoint:
print text.StartPoint,text.EndPoint
# 否则可以判断为多段线,打印多段线端点
else:
print text.Coordiantes LayerObj = acad.ActiveDocument.Layers.Add("HIT_Layer1")
# 添加新图层,图层名称为"HIT_Layer"。y
acad.ActiveDocument.ActiveLayer = LayerObj
# 将"HIT_Layer"图层设置为当前图层。
ClrNum = 1
LayerObj.color = ClrNum
# ClrNum为颜色索引号,其取值范围为[0,256];
# 标准颜色的颜色索引号指定如下::1 红、2 黄、3 绿、4 青、5 蓝、6 洋红、7 白/黑;
# 0 ByBlock、256 ByLayer;
# 其他颜色索引号见 https://wenku.baidu.com/view/9d458b70195f312b3069a505.html。
# 打印图层总数打印并打印每个图层名字
layers_nums = acad.ActiveDocument.Layers.count
# 当前文件模型空间中所包含的图层总数
print layers_nums
layers_names = [acad.ActiveDocument.Layers.Item(i).Name for i in range(layers_nums)]
# print layers_names
for i in layers_names:
# 遍历图层名字并打印
print i.decode("utf-8") # 批量创建图层
clr_num = [1, 2, 3]
# 图层颜色列表
layers_name = ["HIT_图层_1", "HIT_图层_2", "HIT_图层_3"]
# 图层名称列表
try:
len(clr_num) == len(layers_name)
except:
print("图层颜色号个数与图层个数不匹配")
layers_obj = [acad.ActiveDocument.Layers.Add(i) for i in layers_name]
# 批量创建图层
for j in range(len(layers_obj)):
layers_obj[j].color = clr_num[j]
# 批量指定图层颜色
# —— # cad另存为,路径必须为绝对路径,而且不能是中文
for i in range(100):
try:
acad.doc.SaveAs(r'D:\asf\vad\fw%s'%i,i)
time.sleep(1)
except:
continue # (2)、指定文件另存为
acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").SaveAs("D:\AutoCAD\PyAutoCAD_SaveAs", 61)
# 关闭已存在文件
acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").Close(True, "PyAutoCAD_已变更.dwg")
# 关闭PyAutoCAD.dwg文件。
# True 布尔值,为系统默认,表示打开文件后关闭前文件若发生变更,则保存变更,并另存为PyAutoCAD_已变更.dwg
# 此时文件夹中同时存在未变更的"PyAutoCAD.dwg"和已变更的"PyAutoCAD_已变更.dwg"
# 若第二项空缺,则新文件名为"PyAutoCAD.dwg",覆盖之前未变更的文件。
# 已知文件名设为当前
acad.ActiveDocument.Application.Documents("PyAutoCAD.dwg").Activate()
# 将PyAutoCAD.dwg设为当前文件。 未知文件名设为当前
DrawingObj.Activate()
# 将New_Drawing设为当前文件。 关闭新建文件
DrawingObj .Close(True, "HIT.dwg")
# 关闭New_Drawing文件。
# 文件夹中仅存在"HIT.dwg"一个文件。 关闭当前文件
acad.ActiveDocument.Close()
# 关闭当前文档。 # 打印包含指定文本的坐标,文本,坐标基点为文本左基点
for text in acad.iter_objects('Text'):
# print text.TextString, text.InsertionPoint
if re.findall(u"东莞市虎门镇",text.TextString):
# 分别打印文本,点,点Y,点X
print text.TextString,text.InsertionPoint,text.InsertionPoint[0],text.InsertionPoint[1] import re
text.ObjectName # 移动文本
for text in acad.iter_objects('Text'):
text.move(APoint(38467756.90809752, 2519896.6068465607), APoint(100, 100)

pyautocad的更多相关文章

  1. python操作cad

    from pyautocad import Autocad # 自動連接上cad,只要cad是開着的,就創建了一個<pyautocad.api.Autocad> 對象.這個對象連接最近打開 ...

  2. 文件另存为——Autocad.doc.SaveAs

    一.前言 使用pyautocad编辑好cad图纸后,往往涉及到一个保存的问题,但是官方文档并未提及,所以只能自己来了,测试了好久,终于是找到了保存的命令和参数说明. 二.方法介绍 Autocad.do ...

  3. Process Autocad by python

    一.处理AutoCad模块 -pyautocad 1.安装 pip install pyautocad 注:1.该操作会自动安装 comtypes模块,如果其他方式安装,请自行安装comtypes模块 ...

  4. CAD

    文件另存为——Autocad.doc.SaveAs   一.前言 使用pyautocad编辑好cad图纸后,往往涉及到一个保存的问题,但是官方文档并未提及,所以只能自己来了,测试了好久,终于是找到了保 ...

  5. 编程读写CAD文件验证

    背景 B/S应用系统,根据用户上传数据:业务数据和CAD坐标数据,经过一系列运筹算法运算后,输出一批坐标数据,作为给用户的规划结果.此时需要方便直观的给用户展示坐标数据.可选方式有两个: web页面画 ...

随机推荐

  1. P2048 [NOI2010]超级钢琴 [堆+st表]

    考虑只能取长度为 [L,R] 的,然后不难想到用堆搞. 搞个前缀和的st表,里面维护的是一个 最大值的位置 struct rmq { int mx[N][20] ; void qwq(int n) { ...

  2. Java(三)String类

    一.String类初始化方法 1.初始化一个空字符串 String str=new String();//这里调用了String的无参构造方法 2.初始化一个有值的字符串 String str1=&q ...

  3. 曼孚科技:AI算法领域常用的39个术语(上)

    ​算法是人工智能(AI)核心领域之一. 本文整理了算法领域常用的39个术语,希望可以帮助大家更好地理解这门学科. 1. Attention 机制 Attention的本质是从关注全部到关注重点.将有限 ...

  4. sqli-labs less-9 --> less-10

    时间盲注: 利用时间函数,观察不同条件的等待时长:利用sleep(),benchmark()等函数,让MySQL的执行时间变长 时间盲注多于if这样的函数结合(if(expr1,expr2,expr3 ...

  5. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...

  6. 性能优化-css,js的加载与执行

    前端性能优化 css,js的加载与执行 javascript是单线程的 一个网站在浏览器是如何进行渲染的呢? html页面加载渲染的过程 html渲染过程的一些特点 顺序执行,并发加载 词法分析 并发 ...

  7. mac /windows

    1.mac 和 windows 同样的浏览器展示的样式有偏差 考虑:字体的问题,mac/windows 的字体不一样 font-family 用法

  8. 酷卓 一键ROOT教程

    待编辑,还没写完 哈哈 酷卓 一键ROOT教程 首先简单介绍下酷卓. 酷卓由我个人开发,主要为了用户获取ROOT简单化,傻瓜化.酷卓获取方式:加QQ群 766969447 群文件下载就行 1. 手动选 ...

  9. BK: Data mining: concepts and techniques (1)

    Chapter 1 data mining is knowledge discovery from data; The knowledge discovery process is an iterat ...

  10. vscode设置成中文

    打开 VS Code Ctrl + Shift +p打开搜索框 搜索框内输入Configure Display Language 回车 修改代码中“locale”后面引号内内容为zh-CH 重新启动V ...