Ошибка " *** INTERNAL ERROR: VL namespace mismatch " при выполнении фукции - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ошибка " *** INTERNAL ERROR: VL namespace mismatch " при выполнении фукции

Ошибка " *** INTERNAL ERROR: VL namespace mismatch " при выполнении фукции

Ответ
Поиск в этой теме
Непрочитано 24.02.2013, 20:22
Ошибка " *** INTERNAL ERROR: VL namespace mismatch " при выполнении фукции
Michael!
 
инженер
 
Тамбов
Регистрация: 29.01.2009
Сообщений: 63

Доброго времени суток!
Для поиска и замены текста в чертеже, пользуюсь такой вот функцией.
Код:
[Выделить все]
 
(defun chng (Old$ New$)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vlax-for lt (vla-get-layouts adoc)
    (vlax-for obj (vla-get-block lt)
      (if (eq "AcDbText" (vla-get-objectname obj))
        (while (vl-string-search Old$ (vla-get-textstring obj))
          (vla-put-textstring obj
            (vl-string-subst New$ Old$ (vla-get-textstring obj)))
        )
      )
    )
  )
  (princ)
) ;end defun
При этом все она находит и заменяет хорошо, но возникает сабжевая ошибка при поиске и замене значения более 9 символов. И не важно что это за символы буквы или цифры.
Иногда функция вываливается с ошибкой "; warning: unwind skipped on unknown exception", но тоже ничего не находит и не меняет.
Подскажите, как победить проблему. Я понимаю, что не достаточно места для переменной. Но как и что поменять?
Спасибо!
да, забыл написать, что AutoCAD 2004.
Просмотров: 6560
 
Автор темы   Непрочитано 26.02.2013, 12:55
#21
Michael!

инженер
 
Регистрация: 29.01.2009
Тамбов
Сообщений: 63


Образец чего?
Ну например решил поменять дату для начала на layouts с 00/00/00 на 26/02/13. не поменяла. для теста в модели - сменила.
Ты вот в начале умную мысль сказал, а я особо и не обратил внимания, что цикл в засисон бесконечный уходит. Я проверил, и ведь действительно уходит. Только при условии, что я задаю поменять значение "типа само на себя", например есть выражеине "Connector TYCO p/n", а я хочу его заменить на "Connector TYCO p/n C-0480698-10-3". Значит прога моя-то что делает? - Ищет первое выражение и меняет на второе. После нескольких циклов получается такая вот фигня "Connector TYCO p/n C-0480698-10-3 C-0480698-10-3 C-0480698-10-3" ну и т.д.
Может знаешь, как ей это условие прописать, чтобы она так не делала?

Добавлено через некоторое время раздумий:
Помоему я нашел как обойти это (может не совсем правильно с точки зрения лиспа):
Я добавил промежуточную замену. Тоесть "Connector TYCO p/n" я меняю на произвольную неповторяющуюся последовательность "9797979", а ее уже меняю на "Connector TYCO p/n C-0480698-10-3".
Код:
[Выделить все]
 
(progn
	(chng Old$ "9797979")
	(chng "9797979" New$)
;	(chng Old$ New$)
) ;progn
Пока вроде работает без зависов.

Последний раз редактировалось Michael!, 26.02.2013 в 14:06.
Michael! вне форума  
 
Непрочитано 27.02.2013, 13:00
#22
Кулик Алексей aka kpblc
Moderator

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


Я ж предлагал:
Код:
[Выделить все]
 _$ (repeat 163 (_KPBLC-STRING-REPLACE "Connector TYCO p/n" "Connector TYCO p/n" "Connector TYCO p/n C-0480698-10-3"))
"Connector TYCO p/n C-0480698-10-3"
И файл dwg так и не предоставлен.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.02.2013, 21:16
#23
Michael!

инженер
 
Регистрация: 29.01.2009
Тамбов
Сообщений: 63


К сожалению файл рабочего чертежа выложить не смогу. Слишком много данных.
А по поводу программы - я продолжаю использовать свою, благо с твоей помощью пофиксил проблему. Твоя в резерве.
Спасибо за помощь! А прогу твою и мою может есть смысл выложить на всеобщее использование? Вдруг кому что менять потребуется. Часто встречаются такие вопросы судя по поиску. А эту тему думаю что можно закрывать.
Michael! вне форума  
 
Непрочитано 27.02.2013, 21:33
#24
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Michael! Посмотреть сообщение
К сожалению файл рабочего чертежа выложить не смогу. Слишком много данных.
Я не просил весь файл. Было бы достаточно куска: пара-тройка текстов с заменяемыми частями в модели, еще три-четыре "пустых" (там же), ну и до кучи с десяток текстов по листам раскиданных.
Цитата:
Сообщение от Michael! Посмотреть сообщение
А прогу твою и мою может есть смысл выложить на всеобщее использование?
Так оно и так в общем доступе. Хочешь - выкладывай, потому как моя поделка на нормальную прогу не тянет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.02.2013, 11:30
#25
Michael!

инженер
 
Регистрация: 29.01.2009
Тамбов
Сообщений: 63


А моя думаешь тянет? Единственное преимущество - что она короткая.
Файлик тогда в конце дня обрежу и вышлю. Сейчас пока не сижу на месте.
Michael! вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ошибка " *** INTERNAL ERROR: VL namespace mismatch " при выполнении фукции



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Ошибка: "\n*** INTERNAL ERROR: VL namespace mismatch\n"" type Y to reset: misht AutoCAD 8 13.07.2012 10:10
Несоответствие результатов в Лире s.vas Лира / Лира-САПР 19 11.11.2009 07:31
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47
Ошибка INTERNAL ERROR при работе в пространстве листа Sel AutoCAD 2 12.10.2005 11:19