Лоббист Python                        
						размещено: 09 Сентября 2008
обновлено: 13 Сентября 2008                    
 
                 
                
                                        IronPython для AutoCAD 2006-2009 
Запуск скриптов (макросов) на Python для управления AutoCAD через COM  и через ARX.NET.
Возможная будущая альтернатива VBA и Visual Lisp
1.	Запускаете команду _.netload
2.	В этой папке выбираете файл PyAcadDotNet0X.dll, где X – год, соответствующий вашему AutoCAD.
3.	Запускаете команду pyfile
4.	В диалоге выбираете файл скрипта из папки «примеры»
5.	Наслаждаетесь результатом
примечание: если у вас автокад 2007-2009 скрипт можно запускать через Lisp следующим образом (runpyfile "полный путь к файлу скрипта")
Файлы скриптов можно редактировать в бесплатном редакторе Notepad++, который обеспечивает подцветку синтаксиса. Обязательно поставьте опцию отображения пробельных символов, так как отступы в Python  отделяют друг от друга блоки кода.
				LISP
Можно получать передавать и получать значения от IronPython следующим образом:
 (runpyfile "полный путь к файлу скрипта" аргумент1 аргумент2 ...)
 Примеры таких скриптов лежат в папке «примеры» (lisptest.py, lisptest2.py)
				COM
Тем, кто программировал Автокад через COM, используя VBA или Delphi, могут делать то же самое и на IronPython:
	У NET.api класса Application есть свойство AcadApplication, которое является корнем COM-модел Автокада.
from Autodesk.AutoCAD.ApplicationServices import Application
app = Application.AcadApplication
doc = app.ActiveDocument
print doc.FullName
ссылку на объект AcadDocument можно получить и следующим образом:
doc = Application.DocumentManager.MdiActiveDocument.AcadDocument
Сборки для взаимодействия с COM : AutoCAD.COM.R16.dll (для 2006) AutoCAD.COM.R17.dll (для 2007-2009)
Прямо ссылаться на них не нужно, но их наличие необходимо. Для применения COM модели нужно знать содержимое сборки.
Содержимое сборок можно посмотреть с помощью NetReflector, который бесплатен и доступен для скачивания в интернете. Можно ориентироваться на VBA-справку в справочной системе Автокада. 
				ObjectARX.NET API
Чтобы разобраться как программировать,скачивайте справку и примеры в составе ObjectARX SDK c сайта Autodesk для своей версии Автокада. Там есть примеры для NET.
Ограничения:
Оператор print выдает вместо киррилицы кракозябры ???? ??? . Приходится пользоваться Editor.WriteMessage
Файлы скриптов должны быть в формате UTF8 для корректного отображения киррилицы в командной строке при использовании 
оператора print. (Так как исходный файл PyAcadDotNet прилагается, может кто-нибудь это исправит) 
Нельзя работать с реакторами ни через COM, ни через NET.
Нельзя наследовать от arx.net классов.
Пока не существует нормального редактора форм для IronPython. Можно попробовать SharpDevelop + PythonBindings, но эта вещь пока сырая
(также смотри http://code.google.com/p/pyacaddotnet/)
				                
                
                    
                        
							                             
                            1.23                                МБ
                            
                            СКАЧАТЬ
                        
 
                     
                 
             
         
    
Комментарии
Авторизоваться
COM
Тем, кто программировал Автокад через COM, используя VBA или Delphi, могут делать то же самое и на IronPython:
как получить доступ через ModelSpace.Item(x) к конкретным line, point, 3dfacе и т.д.?
[code]
ac3dFace = 1
acLine = 19
acPoint = 22
doc.Utility.Prompt("\n объектов "+str(doc.ModelSpace.Count))
points=0
lines=0
faces=0
i=0
while i
while i
ent=doc.ModelSpace.Item(i)
if ent.EntityType==acLine:
как от ent перейти к line со всеми его методами и полями?