|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Переполнение памяти при программировании на VB.Script в Propety Set Definitions
Регистрация: 09.10.2009
Сообщений: 9
|
||
Просмотров: 3954
|
|
||||
Если в Автокаде что-то происходит, то оно тут же запоминается. Если нарисовать примитив, запомнить его метку, а потом удалить примитив, то через функцию handent все равно можно получить описание этого примитива и даже сохранение файла не помогает. Только полное закрытие и вновь открытие уничтожает избыточные данные, на которых построена система Undo и Redo.
Переменные VB Script, если они созданы в этом же процессе тоже множатся как тараканы. Либо подвязывай VB Script на дочерний процесс, либо после перенастройки таблицы сохраняйся и перегружай файл. |
||||
![]() |
|
||||
Регистрация: 09.10.2009
Сообщений: 9
|
Как подвязать VB Script на дочерний процесс - это же не внешний обработчик, а встроенный в MEP (ACA) или я не правильно понимаю?
Перегружать AutoCAD или файл? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
VBS в AA / MEP вообще-то достаточно хамоватая штукенция. Код покажи (если VitalyF появится, может, он подскажет).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Я написал перезагружай файл. |
||||
![]() |
|
||||
Регистрация: 09.10.2009
Сообщений: 9
|
Цитата:
На VBA выполняется цикл... открывается файл, выполняется минимум необходимых действий, записывается, закрывается и по новой... На 7-9 файле AutoCAD вылетает из-за нехватки памяти... За http://forum.dwg.ru/showthread.php?t=16998 спасибо,хотя пока не понял как это прикрутить. Я не запускаю скрипт, а прописываю его в стиле Schedule Table?AutoCAD MEP сам запускает их своим обработчиком. Для Кулик Алексей aka kpblc прикладываю часть проекта, сам код вставлен в Property Set Definition основной код в VariableList. Последний раз редактировалось Vladmart, 13.10.2009 в 15:33. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Скажу честно - посмотреть что бы то ни было не удалось (проект пуст как барабан - ни конструкций; ни элементов. А на листах много не увидишь).
Специально два раза скачивал (думал, что в первый раз машина глюканула) - ан нет, действительно в проекте пусто...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 09.10.2009
Сообщений: 9
|
Цитата:
Есть лист Общие данные (OD.dwg) -> в нем есть блок штампа (Format) -> к нему привязано несколько Schedle Table с разными стилями ("Шифр","Наименование сооружения" и т.д.) -> стили используют Property Set Definition ("Counters","VariableList", "Subset" и др.) -> в них есть Definition разных типов ("SubSetDescription" с выражениями на VB Scripte, "ProjNumber" с переменными проекта (Project Navigator=> Project => Edit Project => Detailed Information). В проекте есть переменные, принадлежащие всему проекту, есть переменные, принадлежащие листу. Одной из задач вышеперечисленного, создать переменные принадлежащие только Subset-у, при этом автоматически меняющимися от названия Subseta и переменных проекта. Вот добавил переменных, немного кода на VB Scripte и AutoCAD MEP стал "блаженно" зависать ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ннда. Разбираться надо капитально. Навскидку: я бы попытался уменьшить количество вычислений или перевел бы их внутрь одной формулы. Дополнительно попытайся принудительно уничтожать переменные (не помню, работает подобное в VBS или нет) по принципу:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В VBS, интегрированном в AA / MEP вообще нет объявления переменных. Да и типов переменных тоже нет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Это просто неявное объявление.
В VBS интегрированном в WSH тоже самое, однако там можно применять и Dim, и Private, и Public, и даже Option Exlicit. Просто зачастую в этом нет никакого смысла, потому что в VBS один фиг есть только тип данных Variant. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В АА / МЕР идет выполнение единственной функции с предопределенным именем. И код ты пишешь именно для этой функции.
Лично у меня попытки объявить переменную вечно заканчивались полным провалом.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Vladmart, Посмотрел я твою таблицу, поковырял и обратил внимание, что стоит просто переименовать твой файл OD скажем в OD1, как все начинает просто летать. Страшно ругается на огромное количество отсутствующих внешних ссылок, но летает.
А как только его подвязываешь к проекту - тормоз. Не знаю, что у тебя за МЕР, но на голом автокаде именно так. |
||||
![]() |
|
||||
Регистрация: 09.10.2009
Сообщений: 9
|
Цитата:
Кстати, чистый ACAD не должен воспринимать Schedle Table, она воспринимается только в приложениях с AEC технологией (т.к. AA/MEP). Да и переменные проекта (Project Navigator=> Project => Edit Project => Detailed Information) в ACADе не доступны. Файл загружается намного быстрее, если уменьшить кол-во переменных, кол-во КОДА на скорость сильно не влияет... |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ГОСТ Р 53231-2008 | UnyqUm | Поиск литературы, чертежей, моделей и прочих материалов | 5 | 15.09.2009 14:41 |
VBA: утечка памяти при вставке блоков | Mikha | Программирование | 13 | 03.04.2009 09:18 |
Электромагнитная пушка | T-Yoke | Машиностроение | 112 | 06.08.2008 18:48 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |