2012-03-22 1 views
2

Мне нужно найти координаты выделенного текстового объекта в Autocad с помощью python. Для этой цели я использую comtypes. Но все, что я нашел в сети, было связано с получением координат линий и полилинных объектов. Можете ли вы предоставить мне метод, который я могу использовать для этой цели? или вообще, есть ли какой-либо источник, который я могу узнать обо всех атрибутах объекта Autocad и как я могу извлечь из них выгоду?Атрибуты атрибутов текстового объекта в Autocad с Python

Большое спасибо заранее.

ответ

4

Я старый пользователь AutoCAD, и я думаю, что смогу помочь вам в этом. Это действительно помогает, если у вас есть доступ к AutoCAD. Но я думаю, что есть ссылка где-то. Попробуйте мои сообщения в блоге:

http://tomsthird.blogspot.com/2009/07/autocad-and-python-part-2.html

http://tomsthird.blogspot.com/2009/07/accessing-autocad-civil-3d-object-model.html

http://tomsthird.blogspot.com/2009/07/autocad-civil-3d-activex-object-model.html

В одном из этих постов, похоже, у меня есть ссылка на ссылку, что это CHM файл, который поставляется с AutoCAD. Там должно быть лучше.

Вот как я это сделал в Visual LISP:

(VLAX-GET-PROPERTY 
    (VLAX-INVOKE 
     (VLAX-GET-PROPERTY 
     (VLAX-GET-PROPERTY (VLAX-GET-ACAD-OBJECT) 'ACTIVEDOCUMENT) 
     'ACTIVESELECTIONSET 
    ) 
     'ITEM 
     0 
    ) 
    'INSERTIONPOINT 
) 

Я предполагаю, что в чем-то вроде Python вы хотели бы сделать это:

import win32com.client 
acad = win32com.client.Dispatch("AutoCAD.Application") 
doc = acad.ActiveDocument 
inspoint = doc.ActiveSelectionSet.Item.0.InsertionPoint 

Если это не работает для вас, дайте мне знать, и мы будем что-то делать. Я хочу, чтобы вы преуспели, и я был бы очень признателен, если бы вы могли поделиться своим готовым фрагментом кода здесь. Как вы можете видеть из моих сообщений в блоге, мне тоже интересно узнать, как автоматизировать AutoCAD с помощью Python. Может быть, вы можете связаться со мной, и мы сможем работать вместе.

+0

Спасибо, мистер Хаус. Я проведу ваш блог. В последнее время я попытался использовать DXF для управления Autocad. Но способ comtypes будет намного более эффективным. Я новичок в автоматизации Autocad. В качестве первого шага моя цель - разработать программу, которая способна преобразовывать текстовую таблицу внутри таблицы Autocad в Excel. Это действительно для моего собственного использования в моей работе. Не для коммерческих целей. Мне всегда нравилось делиться своими достижениями. Поэтому, если мне удастся, мне не составит труда поделиться тем, что я сделал. Мне было бы приятно работать с таким опытным партнером, как вы. – Shansal

+0

@Shansal, Tom Haws, меня тоже интересует AutoCAD Automation с Python. Я использую скрипты Python для автоматизации задач из моей электротехнической работы. Я создал небольшую библиотеку (требуется «comtypes»). Feautures: упрощает работу с координатами (3D-точки), выполняет эффективную итерацию объектов (с литьем по правильному типу), формат multitext/unformat, дополнительную поддержку таблиц Excel (через 'xlrd' и' tablib') и т. Д. [PyPI] (http : //pypi.python.org/pypi/pyautocad/), [примеры] (https://bitbucket.org/reclosedev/pyautocad/src/tip/examples) (по-русски, извините). Но у него пока нет документации. – reclosedev

+0

Shansal и reclosedev, это очень интересно. reclosedev, я вижу, что вы прокомментировали (ответили) по адресу http://stackoverflow.com/questions/9325162/win32com-connection-failure-to-autocad-via-python, что необходимо использовать comtypes. Если вы успешно это сделаете, особенно если вы настроены на сообщество, я (и, я полагаю, Shansal) очень заинтересован в том, чтобы говорить с вами и начинать библиотеку кода AutoCAD Python, и, безусловно, немного продвинулся с решениями в моем блоге. Я новичок в Python. Но я могу помочь вам, ребята, с нюансами AutoCAD. –