Получение атрибутов текстовых объектов в AutoCAD с Python - PullRequest
2 голосов
/ 22 марта 2012

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

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

1 Ответ

4 голосов
/ 23 марта 2012

Я старый пользователь 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. Может быть, вы можете связаться со мной, и мы можем работать вместе.

...