Проблема "отката"
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Проблема "отката"

Проблема "отката"

Ответ
Поиск в этой теме
Непрочитано 01.06.2007, 16:02 #1
Проблема "отката"
Spy
 
3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Ростов-на-Дону
Регистрация: 27.02.2007
Сообщений: 136

Жила-была база эелементов. Каждый элемент в своем двж файле. И стали их приглашать в сборки - другие двж файлы(как блоки вставлять)! Но иногда по ошибке приглашали не те элемнты! Чтобы их прогнать приглошали Дядю "Отката" (undo). Если незванных элементов было много и пригласили их давно, то приходил ЗЛОЙ ФАТАЛЭРОР!!! И всем наставал пи...ц!
Спите спокойно!
Просмотров: 7582
 
Непрочитано 01.06.2007, 16:04
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Мои поздравления. А теперь то же самое, но:
1) по-русски.
2) литературно (без мата и закосов под него)
3) подробно (версия acad'a, наличие сервис-паков, доп.приложений типа СПДС...)
4) без эмоций.
5) и задай все же вопрос.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.06.2007, 16:10
#3
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Собственно вопрос:
Как победить фатал эрор?
Параметры: Автокад 2006 русский. на него ставим Autoplant. Вызов вставки блоков осуществляем с помощью VBA. из файлов ДВЖ. При вставке разбиваем и формируем группы. При откате назад , т.е. мы отменяем вставку блока из двж файла, происходит ФАТАЛЭРОР!
Spy вне форума  
 
Непрочитано 01.06.2007, 16:13
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Сервис-пак ставил на acad?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.06.2007, 17:18
#5
X-DeViL

Бизнес-шмизнес
 
Регистрация: 26.05.2004
Питер
Сообщений: 1,911


Вот блин издержки професси моей )) Угадайте что я подумал когда прочел название???
__________________
:diablo: Truth is out there
X-DeViL вне форума  
 
Непрочитано 01.06.2007, 17:24
#6
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


У меня на АС2006 подобная ошибка происходит, если программно поставить не закрытую StartUndoMark. При попытке возврата - 100% Фатальная ошибка.
Возможно в вашем VBA приложении подобный косячок...
Евгений А. вне форума  
 
Непрочитано 01.06.2007, 17:25
#7
lee


 
Регистрация: 28.02.2004
43
Сообщений: 1,827
<phrase 1=


Цитата:
Сообщение от X-DeViL
Вот блин издержки професси моей )) Угадайте что я подумал когда прочел название???
Ты не один (с)
lee вне форума  
 
Автор темы   Непрочитано 01.06.2007, 17:25
#8
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Автокад в Автодеске покупали. Примерно полгода назад. Мне кажется, что в него сервис пак должен быть интерирован. Это можно проверить? Где посмотреть?
Spy вне форума  
 
Непрочитано 01.06.2007, 17:25
#9
Om81

Хочу быть фотографом :)
 
Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
<phrase 1=


Цитата:
Сообщение от X-DeViL
Вот блин издержки професси моей )) Угадайте что я подумал когда прочел название???
Не только ты..
Я ж говорю -надо темы из разных разделов в разные цвета красить..
Om81 вне форума  
 
Автор темы   Непрочитано 01.06.2007, 17:35
#10
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Цитата:
Сообщение от Евгений А.
У меня на АС2006 подобная ошибка происходит, если программно поставить не закрытую StartUndoMark. При попытке возврата - 100% Фатальная ошибка.
Возможно в вашем VBA приложении подобный косячок...
Хм... Вот, вот... можете поподробнее плизз...
Spy вне форума  
 
Непрочитано 01.06.2007, 18:13
#11
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Пожалюйта
Кинь в ком строку это:
Код:
[Выделить все]
(vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
Теперь UNDO несколько раз (2006 - 2 раза, 2007 - где-то раз 5 (прямо в натуре "ОТКАТ,,,"), 2008 - бесполезно)

Только пристегнись и приготовься к ВЫЛЕТУ!!!
Евгений А. вне форума  
 
Непрочитано 01.06.2007, 18:25
#12
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


> Spy
Сервиспаки для Автокада не интегрированы, качаются отдельно.
http://usa.autodesk.com/adsk/servlet...linkID=9240618
Проверить можно: меню "Справка" - "О программе", кнопка "О продукте". Строка "Пакет обновления".
KSI вне форума  
 
Автор темы   Непрочитано 01.06.2007, 19:16
#13
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


В разделе обновления стоит 0. Если бы сервис пак интегрировался разве он считался бы обновлением???
Spy вне форума  
 
Автор темы   Непрочитано 01.06.2007, 19:17
#14
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Цитата:
Сообщение от Евгений А.
Пожалюйта
Кинь в ком строку это:
Код:
[Выделить все]
(vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
Теперь UNDO несколько раз (2006 - 2 раза, 2007 - где-то раз 5 (прямо в натуре "ОТКАТ,,,"), 2008 - бесполезно)

Только пристегнись и приготовься к ВЫЛЕТУ!!!
А как это будет на VBA?
Spy вне форума  
 
Непрочитано 01.06.2007, 19:17
#15
Lamer Inc..


 
Регистрация: 16.10.2006
Санкт-Петербург
Сообщений: 569


... И я вот клюнул на тему. Ожидал увидеть нормативные значения откатов, действующие в настоящее время в строительстве и проектировании.
Lamer Inc.. вне форума  
 
Непрочитано 01.06.2007, 20:35
#16
iskander


 
Сообщений: n/a


Да уж... Сейчас такое время: не дашь откат - не получишь работу. Это свидетельствует о том, что рыночная экономика и здоровая конкуренция на пути становления. Поживем - увидим! А вопрос интересный: какое соотношение договорной цены и размера отката наиболее распространено?
 
 
Непрочитано 01.06.2007, 23:38
#17
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Spy
А как это будет на VBA?
Наверное так
Код:
[Выделить все]
Sub good_bay()
ThisDrawing.StartUndoMark
End Sub
Евгений А. вне форума  
 
Непрочитано 01.06.2007, 23:52
#18
ppv

инженер
 
Регистрация: 05.08.2006
Самара
Сообщений: 258


У нас откаты до 10% от стоимости договора включая НДС (если договор небольшой)
ppv вне форума  
 
Непрочитано 01.06.2007, 23:52
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


"Неправильно ты, дядя Федор, бутерброд ешь" (с)
ИМХО надо так:
Код:
[Выделить все]
Public Sub MakeIt()
  ThisDrawing.StartUndoMark
  ' Собственно вставка внешнего блока
  ThisDrawing.EndUndoMark
End Sub
То есть ИМХО надо просто "обрамить" маркерами отмены выполняемые действия. При этом крайне желательно избегать варианта, при котором метки начала и конца отмены еще встречаются и внутри куска
Код:
[Выделить все]
  ' Собственно вставка внешнего блока
Иначе акад может повести себя немного непредсказуемо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.06.2007, 00:07
#20
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Вот! Вот оно!!!! Большое спасибо!
Spy вне форума  
 
Непрочитано 02.06.2007, 00:13
#21
Kryaker

инженер
 
Регистрация: 18.10.2004
Москва
Сообщений: 2,595
<phrase 1=


Цитата:
Ожидал увидеть нормативные значения откатов
Это батенька надо новый раздел СНИП-ов писать, а в старые вносить правку... Может поэтому СНИП-ы и отменяют что сей раздел кишка тонка написать...
__________________
No comments!
Kryaker вне форума  
 
Непрочитано 02.06.2007, 11:33
#22
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Кулик Алексей aka kpblc
"Неправильно ты, дядя Федор, бутерброд ешь" (с)
Конечно неправильно! Это просто пример того как сделать вылет с фатальной ошибкой при UNDO. Зная причину, знаешь как лечить.
В реальности такое происходит, когда программа прерывается на какой-нибудь ошибке не дойдя до EndUndoMark, что усложняктся тем, что по логике закрытие метки надо делать в самом конце программы (и в конце обработчика ошибок, где тоже может произойти ошибка раньше), и тогда возможена наша ситуация с вылетом при Undo.
Евгений А. вне форума  
 
Автор темы   Непрочитано 02.06.2007, 15:31
#23
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Хочу экспириенс прокачать по VBA для автокада. Есть ли какая нить книжка написаная в художественном стиле? С большим количеством эпитетов, преамбул, олицетворений и других приемов, делающих чтение удивительным и захватывающим процессом))) :?:
Spy вне форума  
 
Непрочитано 02.06.2007, 23:43
#24
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Охохох... Евгений, ну не буду я писать о том, как правильно разрабатывать программы - я ж не Эдуард, ShaggyDoc, Н.Н.Полещук, А.Н.Ривилис, Alaspher, Евгений Елпанов, VVA, Лентяй, {Smirnoff}, SmeL, LeonidSN и другие высококлассные программисты (простите, что упоминаю не всех) в одном флаконе Понятно, что внутри каждой функции, которая может вызывать ошибку, надо ставить On Error Goto lErrorCatching; понятно, что таких переходов внутри одной VBA-функции или процедуры может быть сколько угодно; понятно, что внутри любого обработчика можно поставить ThisDrawing.EndUndoMark... Это все ясно, только относится на самом деле ИМХО немного к другой области - теории программирования (если говорить высоким слогом).
> Spy: Книжка... Честно говоря, лично я не встречал (правда, особо и не искал). Наверное, конкретный вопрос + конкретный ответ + собственный разбор представленного кода даст самый классный опыт, который ни в одной книжке не найдешь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.06.2007, 10:49
#25
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Кулик Алексей aka kpblc
Охохох... Евгений, ну не буду я писать о том, как правильно разрабатывать программы...
И не надо, я всё равно с VBA не дружу, Лисп как-то ближе (уже ближе ассемблера, к сожалению).
-> Spy: Всё же лучше сначала прочитать книжку (хоть какую-нибудь по VB), а потом уже вопросы задавать если чего не дошло, а то люди засмеют. Так что руки в ноги, пока не передумал и дуй в книжный (Садовая/Ворошиловский) и подбирай по вкусу!
Евгений А. вне форума  
 
Автор темы   Непрочитано 03.06.2007, 13:46
#26
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Ни разу не видел книжку VBA для автокада на русском. Отсюда вопрос.
Spy вне форума  
 
Непрочитано 03.06.2007, 14:24
#27
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Бумажной книги именно по VBA лично я не встречал. По VB - да, не вопрос.
Из электронных источников могу посоветовать обратиться к http://www.relib.com/forums/forum1.aspx ; http://www.vbrussian.com/index.asp ; http://planetsourcecode.com/ ; http://groups.google.com/group/fido7...n&lr=&ie=UTF-8 ; http://vbstreets.ru/ ; http://msdn2.microsoft.com/ru-ru/default.aspx .
Последняя ссылка - на MSDN, там инфы полно. Есть еще www.firststeps.ru (правда, там рассматривается применительно к Excel'у, насколько я помню). Можно также глянуть на http://rsdn.ru/ - но там я инфу по VBA, честно говоря, даже не искал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.06.2007, 10:57 все равно фаталит! уже каждую вставку блока обрамлял undo ма
#28
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Spy вне форума  
 
Непрочитано 04.06.2007, 11:10
#29
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


> Spy : поправь пост, там кроме куска заголовка и смайлика ни шиша не видно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.06.2007, 11:53
#30
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


->Spy
А вы уверены, что проблема именно в метках? Вдруг с метками всё в порядке. Я для этого и писал пример искусственного вылета, чтобы можно было сравнить это поведение Автокада с вашим. Если вы не заметили, то при StartUndoMark всплывающий список кнопки UNDO (стрелочка справа от кнопки) становится неактивным (тусклым) и именно в этот момент нельзя нажимать саму кнопку (сдесь весь косяк кроется - список сделали неактивным, а кнопку - забыли), и только после закрытия метки EndUndoMark список вновь становится активным. Так что сначала убедитесь, что проблема именно в этом
Евгений А. вне форума  
 
Автор темы   Непрочитано 04.06.2007, 17:45
#31
Spy

3d, проектирование диспетчеризации инженерных систем, автоматизация
 
Регистрация: 27.02.2007
Ростов-на-Дону
Сообщений: 136
<phrase 1= Отправить сообщение для Spy с помощью Skype™


Пока процедуру вставки блоков не облепил маркерами вылетало сразу же после нажатия отменить. Сейчас после 4-5 нажатий!
Spy вне форума  
 
Непрочитано 05.06.2007, 00:19
#32
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Ради эксперимента советую совсем убрать из программы маркеры или хотябы маркер старта.
Евгений А. вне форума  
 
Непрочитано 05.06.2007, 00:59
#33
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Свой код покажи - попробуем поковырять
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Проблема "отката"

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск