我没有得到 BlockReference 的位置?
I am not getting Postion of the BlockReference?
当我尝试制作 excel sheet 时。这需要 AdcblockReference 名称和位置。但是当我尝试 运行 时,此代码出现属性错误。所以我不知道如何获得下面给出的位置和名称是我的代码
from os.path import join, dirname, abspath
from xlutils.copy import copy
import xlrd
import xlwt
from pyautocad import Autocad, APoint
import os
import win32com.client
from pyautocad import Autocad, APoint
from pyautocad.contrib.tables import Table
from comtypes import COMError
# Create workbook
book = xlwt.Workbook()
ws = book.add_sheet("ExportedData")
book.save("Exported.xls")
# Open the workbook
xl_workbook = xlrd.open_workbook("Exported.xls")
sheet_names = xl_workbook.sheet_names()
xl_sheet = xl_workbook.sheet_by_name(sheet_names[0])
wb = copy(xl_workbook)
sheet = wb.get_sheet(0)
dwgfiles = filter(os.path.isfile, os.listdir(os.curdir))
cwd = os.path.abspath(os.path.curdir) # current working dir
print(cwd)
for f in dwgfiles:
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print(f)
if f.endswith(".dwg"):
print("sdaasdas")
""" open Document"""
acad = Autocad()
print(cwd)
acad.app.Documents.open(cwd + "/" + f)
print(acad.doc.Name)
num_cols = xl_sheet.ncols # Number of columns
idx = 1
acad = win32com.client.Dispatch("AutoCAD.Application")
doc = acad.ActiveDocument # Document object
print("MODEL SPACE")
count=0
for entity in acad.ActiveDocument.ModelSpace:
name = entity.EntityName
print(name)
if name == 'AcDbBlockReference':
print(name)
count=count+1
sheet.row(idx).write(1, entity.ObjectID)
sheet.row(idx).write(2, cwd + "/" + f)
sheet.row(idx).write(3,entity.IntersectionPoint)
idx = idx + 1
print(count)
doc.Close(False)
acad = None
wb.save("Exported.xls")
下面是我遇到的错误。
Traceback (most recent call last):
File "auto1.py", line 64, in <module>
sheet.row(idx).write(3,entity.IntersectionPoint)
File "D:\autocad_test\venv\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.IntersectionPoint
如果您向我推荐关于 AutoCADpython 的任何好的教程,这将非常有帮助
好像打错了。
您使用 IntersectionPoint
,而正确的应该是 InsertionPoint
,如 VBA 或 position
,如 ObjectARX
当我尝试制作 excel sheet 时。这需要 AdcblockReference 名称和位置。但是当我尝试 运行 时,此代码出现属性错误。所以我不知道如何获得下面给出的位置和名称是我的代码
from os.path import join, dirname, abspath
from xlutils.copy import copy
import xlrd
import xlwt
from pyautocad import Autocad, APoint
import os
import win32com.client
from pyautocad import Autocad, APoint
from pyautocad.contrib.tables import Table
from comtypes import COMError
# Create workbook
book = xlwt.Workbook()
ws = book.add_sheet("ExportedData")
book.save("Exported.xls")
# Open the workbook
xl_workbook = xlrd.open_workbook("Exported.xls")
sheet_names = xl_workbook.sheet_names()
xl_sheet = xl_workbook.sheet_by_name(sheet_names[0])
wb = copy(xl_workbook)
sheet = wb.get_sheet(0)
dwgfiles = filter(os.path.isfile, os.listdir(os.curdir))
cwd = os.path.abspath(os.path.curdir) # current working dir
print(cwd)
for f in dwgfiles:
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print("++++++++++++++++++++++++++++++")
print(f)
if f.endswith(".dwg"):
print("sdaasdas")
""" open Document"""
acad = Autocad()
print(cwd)
acad.app.Documents.open(cwd + "/" + f)
print(acad.doc.Name)
num_cols = xl_sheet.ncols # Number of columns
idx = 1
acad = win32com.client.Dispatch("AutoCAD.Application")
doc = acad.ActiveDocument # Document object
print("MODEL SPACE")
count=0
for entity in acad.ActiveDocument.ModelSpace:
name = entity.EntityName
print(name)
if name == 'AcDbBlockReference':
print(name)
count=count+1
sheet.row(idx).write(1, entity.ObjectID)
sheet.row(idx).write(2, cwd + "/" + f)
sheet.row(idx).write(3,entity.IntersectionPoint)
idx = idx + 1
print(count)
doc.Close(False)
acad = None
wb.save("Exported.xls")
下面是我遇到的错误。
Traceback (most recent call last):
File "auto1.py", line 64, in <module>
sheet.row(idx).write(3,entity.IntersectionPoint)
File "D:\autocad_test\venv\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.IntersectionPoint
如果您向我推荐关于 AutoCADpython 的任何好的教程,这将非常有帮助
好像打错了。
您使用 IntersectionPoint
,而正确的应该是 InsertionPoint
,如 VBA 或 position
,如 ObjectARX