python 获取CAD扩展属性
斜体样式# -- coding: utf-8 --
from pyautocad import Autocad, APoint
from pyautocad.contrib.tables import Table
import re
import win32com.client
import pythoncom
import math, time, shutil, sys, traceback
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtWidgets import QApplication
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QAction
from PyQt5 import QtCore, QtGui, QtWidgets
def vtInt(list):
“”“列表转化为整数”“”
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)
def vtVariant(list):
“”“列表转化为变体”“”
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)
def cad_xdata(self):
acad = win32com.client.Dispatch(“AutoCAD.Application”)
filterType = vtInt([0, 8])
doc = acad.ActiveDocument
try:
doc.SelectionSets.Item(“SS1”).Delete()
except:
print(“Delete selection failed”)
slt = doc.SelectionSets.Add(“SS1”)
# slt.Select(5, 0, 0, vtInt([0, 8, 1000]), vtVariant([“LWPOLYLINE”, “BDMAP_地籍图框”, “JC10020”]))
slt.SelectOnScreen()
for item in slt:
xdate = item.GetXData(“”)[1]
#print(item.GetXData(“PropertyInfo”)[1][1])
ii = 0
for date in xdate:
item1 = QtWidgets.QListWidgetItem()
self.listWidget_xdata.addItem(item1)
item1 = self.listWidget_xdata.item(ii)
item1.setText(date)
ii += 1
print(date)
def main(self):
def ye_main():
try:
cad_xdata(self)
except:
QMessageBox.information(None, ‘提示’, ‘出错了:%s’%traceback.format_exc())
self.pushButton_xdata.clicked.connect(ye_main)
if name == ‘main’:
app = QApplication(sys.argv)
MainWindow = QMainWindow() # QMainWindow模块名
self = jm.Ui_MainWindow()
self.setupUi(MainWindow)
main(self)
MainWindow.show()
sys.exit(app.exec_())