when I try to make an excel sheet. which needs AdcblockReference name and position. but when I try to run this code getting attribute error. so I don't how to get the position and name below given is my code
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")
below is the error am getting.
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
its very helpful if you suggest me any good tutorial of python on AutoCAD
It seems to be typing mistake.
You use IntersectionPoint
while the correct should be InsertionPoint
as in VBA or maybe position
as in ObjectARX