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

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

"Неопределенный тип линии" ошибка в VBA

Ответ
Поиск в этой теме
Непрочитано 15.05.2013, 23:56 #1
"Неопределенный тип линии" ошибка в VBA
McIntosh
 
Регистрация: 15.06.2010
Сообщений: 7

Добрый вечер!
Есть программка написанная на VBA, которая по данным из Excel строит разрезы. Программкой давно не пользовался (на старых версиях Асаd -работала).
Сейчас АКАД 12-й при выполнении макроса выдает "неопределенный тип линии"
Код:
[Выделить все]
  Dim entry As AcadLineType, found As Boolean
  found = False
  For Each entry In acDoc.Linetypes
    If StrComp(entry.Name, "DASHED", 1) = 0 Then: found = True:  Exit For:
  Next
  If Not (found) Then acDoc.Linetypes.Load "DASHED", "acad.lin"
может быть ошибка в обращении выбора типа линии ??? кто может подсказать ?
Заранее благодарен!
Просмотров: 3311
 
Непрочитано 16.05.2013, 00:10
#2
Кулик Алексей aka kpblc
Moderator

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


Тип линии надо загружать. И при этом не забывать про локализации и имена типов линий в них.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.05.2013, 00:28
#3
McIntosh


 
Регистрация: 15.06.2010
Сообщений: 7


If Not (found) Then acDoc.Linetypes.Load "DASHED", "acad.lin" - ну так по идее эта строка и должна загрузить нужный тип в чертеж. или не верно ?

загружал типы линии в ручную!
Цитата:
И при этом не забывать про локализации и имена типов линий в них
а тут немного по подробней если не затруднит.
McIntosh вне форума  
 
Непрочитано 16.05.2013, 00:35
#4
Кулик Алексей aka kpblc
Moderator

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


В английской версии тип линии HIDDEN, в русской - ШТРИХ (насколько я помню). Ну и тому подобное, типы линий надо сопоставлять вручную. На caduser.ru в "Готовых программах" была тема по загрузке типа линии в чертеж независимо от локализации AutoCAD.
И еще момент - чертеж что, выполняется в дюймах?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.05.2013, 00:42
#5
McIntosh


 
Регистрация: 15.06.2010
Сообщений: 7


нет, миллиметры.
Пойду на caduser почитаю. Спасибо.
McIntosh вне форума  
 
Непрочитано 16.05.2013, 00:53
#6
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от McIntosh Посмотреть сообщение
нет, миллиметры.
Тогда почему тип линии грузится из acad.lin, а не из acadiso.lin?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.05.2013, 01:01
#7
McIntosh


 
Регистрация: 15.06.2010
Сообщений: 7


да, спасибо. Уже заметил. Заменил. Но ошибку выдает именно в этом месте acDoc.Linetypes.Load "DASHED", "acadiso.lin".
Тип HIDDEN тоже пробовал.
McIntosh вне форума  
 
Непрочитано 16.05.2013, 09:13
#8
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811



Нужно чище писать код и все типы определять точно
Попробуй так
Код:
[Выделить все]
Option Explicit
Function IsLineTypeExist(ltName As String) As Boolean
Dim ltEntry As AcadLineType
IsLineTypeExist = False
On Error Resume Next
   For Each ltEntry In ThisDrawing.Linetypes
   If StrComp(ltEntry.Name, ltName, vbTextCompare) = 0 Then
   IsLineTypeExist = True
   End If
   Next
End Function
Public Sub testLtype()
  Dim entry As AcadLineType, found As Boolean
  found = False
  Dim ltfile As String
  ltfile = IIf(ThisDrawing.GetVariable("measureinit") = 1, "acadiso.lin", "acad.lin")
Dim ltName As String
Dim arr As Variant
arr = Array("Center", "Dashed", "Dot", "Hidden", "Phantom", "Phantom2")
Dim i
For i = LBound(arr) To UBound(arr)
ltName = arr(i)
If Not IsLineTypeExist(ltName) Then
ThisDrawing.Linetypes.Load ltName, ltfile
End If
Next
End Sub
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 16.05.2013, 09:39
#9
McIntosh


 
Регистрация: 15.06.2010
Сообщений: 7


Спасибо, будем пробовать.
McIntosh вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > "Неопределенный тип линии" ошибка в VBA



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Почему такой странный выгиб плиты при нелинейном расчете? Wayne Rooney Лира / Лира-САПР 3 22.11.2018 15:51
Максимальная ошибка в узле 50797 по направлению 2: 0.387%. Kastrulkin Расчетные программы 11 06.12.2011 15:35
Расчёт по СНиПу стальной стойки квадратного сечения не предусмотрен. Filя Металлические конструкции 330 09.02.2011 19:47
Непонятки со связями bezo Расчетные программы 8 06.06.2010 12:34