|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
08.06.2010, 01:12 | #1 | |
[AutoCAD+VBA] заливка внутри контура
оператор МТР
Липецк
Регистрация: 02.06.2010
Сообщений: 22
|
||
Просмотров: 9220
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Теоретически можно, если функция возвращает массив объектов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
переработал, упростил код для отладки: Код:
Set col1 = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") выдаёт: "проблемы при загрузке приложения runtime error vba '-2147221005" Function GetInterfaceObject(ProgID As String) As Object что делать с этим ProgID не доходит до меня... работал по примеру от сюда: http://vbamodel.narod.ru/AutoCAD/ex_addhatch.htm Буду очень благодарен за напутствия, почти решил нужную задачу... Последний раз редактировалось Clinri, 31.03.2011 в 00:41. |
||||
|
||||
|
||||
|
||||
Точно! и с самого начала такая ошибка шла... невнимательно копировал.
Огромное спасибо! Теперь дело сдвинулось с мёртвой точки. и кстати применил на полной версии программы, с разделкой, где объекты задаются функциями - работает. Но в окошке AutoCAD'a выглядит результат страшновато, много закрашенных объектов, но при печати очень неплохо. и на печать дико долго обрабатывает... не рациональный немного способ... алгоритм заполнения разделки ещё не отработан, но это уже решаемо... самое нереальное сделано Последний раз редактировалось Clinri, 31.03.2011 в 02:06. |
||||
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813
|
Может обойтись без градиента только солидом и применить DrawOrder по порядку наложения объектов
будет меньше весить плюс обнуляй AcCmColor в конце Код:
обойдешься одним: Код:
Код:
Последний раз редактировалось Олег (jr.), 31.03.2011 в 02:12. Причина: добавлен пример |
|||
|
||||
Цитата:
или я что то не понимаю.. подскажете? ибо градиентом програмка очень медленно работает, особенно когда их около 100 штук, скорость по экспоненте при построении падает и как на рисунке выше видно заливка немного перекрывает линию, и она становится не чёткой, пробовал переместить код отрисовки сплайнов после заливки, но тогда заливка ругается что нечего заливать, ибо сплайнов нет... Update к сплайнам в конце применял, в надежде что он перерисуется и окажется сверху, не помогло Помогло рисование 2ой раз в том же месте такого же сплайна, но это черезчур много объектов выходит, ещё медленне работает. Увеличил толщину линий сплайна - тоже помогло, но только при печати, на экране выглядит всё как еле видные прерывистые линии как я понимаю в AutoCAD объект нарисованный последним рисуется поверх, а можно ли поднимать наверх объекты которые были нарисованы раньше? Спасибо Последний раз редактировалось Clinri, 05.04.2011 в 00:15. |
||||
|
||||
В общем работа продолжается...
одна из проблем которая терзает: как програмно определить версию AutoCAD? Ибо например в коде: Код:
кто уже сталкивался с подобными трудностями, подскажите пожалуйста |
||||
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813
|
Цитата:
Код:
Код:
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обрезка объектов по принципу программы КРЕДО, Выделение объектов находящихся внутри заданного контура (автоматическая обрезка чертежа по кнтуру) | МишаИнженер | AutoCAD | 6 | 25.08.2009 16:17 |