Обсуждение видеоуроков AutoCAD VBA

Автор Тема: Обсуждение видеоуроков AutoCAD VBA  (Прочитано 202613 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ediczr2012Автор темы

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #60 : 19-12-2016, 14:17:13 »
Добрый день.

Записал видео проблемы по штриховке в динамическом блоке.



Сделал отдельный чертеж в autoCAD и загрузил блок (на видео все видно)

Проблема в общем чертеже остается та же самая по штриховке (где все блоки), при выполнении VBA скрипта штриховка вылетает, хотя в блоке штриховка "ассоциативная" и в блок не добавлена базовая точка.
Как видно из видео при добавлении базовой точки - штриховка вылетает хотя штриховка "ассоциативная".

Код - Visual Basic [Выбрать]
  1. Sub InsertBlockRazrez_1()
  2.  
  3.     Dim blockRef As AcadBlockReference
  4.     Dim name As String
  5.     Dim pp As Variant
  6.     Dim AP As Excel.Application
  7.     Dim WB As Excel.Workbook
  8.     Dim WS As Excel.Worksheet
  9.     Dim insPnt(0 To 2) As Double
  10.  
  11. 'В случае ошибки переходим к следующему действию
  12.        On Error Resume Next
  13.      
  14. 'Подключаемся к Excel
  15.        Set AP = Excel.Application
  16.         Set WB = AP.Workbooks.Open("C:\Probnic\primer.xlsm")
  17.         Set WS = WB.Worksheets("Лист1")
  18.  
  19. 'Получаем точку вставки блока
  20.        pp = ThisDrawing.Utility.GetPoint(, "Укажите точку вставки блока:")
  21.        
  22. 'Считываем данные с Excel имя блока
  23.        name_b = Cells(21, 1)
  24.  
  25. ' Имя блока
  26.        name = name_b
  27.        
  28. ' Вставка блока
  29.        Set blockRef = ThisDrawing.ModelSpace.InsertBlock(pp, name, 1, 1, 1, 0)
  30.        
  31. 'Получение динамических свойств блока
  32.        If blockRef.IsDynamicBlock = True Then
  33.              Props = blockRef.GetDynamicBlockProperties
  34.                  For Index = LBound(Props) To UBound(Props)
  35.                       Set prop = Props(Index)
  36. 'Получение динамических свойств блока Расстояние1
  37.                        If prop.PropertyName = "Расстояние1" Then
  38.                              prop.Value = Cells(17, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние1
  39. 'Получение динамических свойств блока Расстояние2
  40.                        ElseIf prop.PropertyName = "Расстояние2" Then
  41.                                 prop.Value = Cells(18, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние2
  42. 'Получение динамических свойств блока Расстояние3
  43.                        ElseIf prop.PropertyName = "Расстояние3" Then
  44.                                 prop.Value = Cells(19, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние3
  45. 'Получение динамических свойств блока Расстояние4
  46.                        ElseIf prop.PropertyName = "Расстояние4" Then
  47.                                 prop.Value = Cells(20, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние4
  48. 'Получение динамических свойств блока Расстояние5
  49.                        ElseIf prop.PropertyName = "Расстояние5" Then
  50.                                 prop.Value = Cells(21, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние5
  51. 'Получение динамических свойств блока Расстояние6
  52.                        ElseIf prop.PropertyName = "Расстояние6" Then
  53.                                 prop.Value = Cells(22, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние6
  54. 'Получение динамических свойств блока Расстояние7
  55.                        ElseIf prop.PropertyName = "Расстояние7" Then
  56.                                 prop.Value = Cells(23, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние7
  57. 'Получение динамических свойств блока Расстояние8
  58.                        ElseIf prop.PropertyName = "Расстояние8" Then
  59.                                 prop.Value = Cells(24, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние8
  60. 'Получение динамических свойств блока Расстояние9
  61.                        ElseIf prop.PropertyName = "Расстояние9" Then
  62.                                 prop.Value = Cells(25, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние9
  63. 'Получение динамических свойств блока Расстояние10
  64.                        ElseIf prop.PropertyName = "Расстояние10" Then
  65.                                 prop.Value = Cells(26, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние10
  66. 'Получение динамических свойств блока Расстояние11
  67.                        ElseIf prop.PropertyName = "Расстояние11" Then
  68.                                 prop.Value = Cells(27, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние11
  69. 'Получение динамических свойств блока Расстояние12
  70.                        ElseIf prop.PropertyName = "Расстояние12" Then
  71.                                 prop.Value = Cells(28, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние12
  72. 'Получение динамических свойств блока Расстояние13
  73.                        ElseIf prop.PropertyName = "Расстояние13" Then
  74.                                 prop.Value = Cells(29, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние13
  75. 'Получение динамических свойств блока Расстояние14
  76.                        ElseIf prop.PropertyName = "Расстояние14" Then
  77.                                 prop.Value = Cells(30, 20) * 1 'Считываем данные с Excel динамических свойства Расстояние14
  78.                        End If
  79.                  Next
  80.         End If
  81.  
  82. 'Получение атрибутов
  83.        If blockRef.HasAttributes = True Then
  84.             att = blockRef.GetAttributes
  85.                 For i = LBound(att) To UBound(att)
  86.                
  87. 'Получение атрибутов TIP_GRUNDA_1
  88.                    If att(i).TagString = "TIP_GRUNDA_1" Then
  89.                         att(i).TextString = Cells(17, 8)    'Считываем данные с Excel TIP_GRUNDA_1
  90. 'Получение атрибутов TIP_GRUNDA_2
  91.                    ElseIf att(i).TagString = "TIP_GRUNDA_2" Then
  92.                         att(i).TextString = Cells(18, 8)    'Считываем данные с Excel TIP_GRUNDA_2
  93. 'Получение атрибутов TIP_GRUNDA_3
  94.                    ElseIf att(i).TagString = "TIP_GRUNDA_3" Then
  95.                         att(i).TextString = Cells(19, 8)    'Считываем данные с Excel TIP_GRUNDA_3
  96. 'Получение атрибутов TIP_GRUNDA_4
  97.                    ElseIf att(i).TagString = "TIP_GRUNDA_4" Then
  98.                         att(i).TextString = Cells(20, 8)    'Считываем данные с Excel TIP_GRUNDA_4
  99. 'Получение атрибутов UROVEN_JISTOGO_POLA
  100.                    ElseIf att(i).TagString = "UROVEN_JISTOGO_POLA" Then
  101.                         att(i).TextString = Cells(21, 8)    'Считываем данные с Excel UROVEN_JISTOGO_POLA
  102. 'Получение атрибутов UROVEN_ZEMLI
  103.                    ElseIf att(i).TagString = "UROVEN_ZEMLI" Then
  104.                         att(i).TextString = Cells(22, 8)    'Считываем данные с Excel UROVEN_ZEMLI
  105. 'Получение атрибутов UROVEN_POD_VOD
  106.                    ElseIf att(i).TagString = "UROVEN_POD_VOD" Then
  107.                         att(i).TextString = Cells(23, 8)    'Считываем данные с Excel UROVEN_POD_VOD
  108. 'Получение атрибутов OTM_FUN_V2
  109.                    ElseIf att(i).TagString = "OTM_FUN_V2" Then
  110.                         att(i).TextString = Cells(24, 8)    'Считываем данные с Excel OTM_FUN_V2
  111. 'Получение атрибутов OTM_PODUHCI
  112.                    ElseIf att(i).TagString = "OTM_PODUHCI" Then
  113.                         att(i).TextString = Cells(25, 8)    'Считываем данные с Excel OTM_PODUHCI
  114. 'Получение атрибутов OTM_SL_1
  115.                    ElseIf att(i).TagString = "OTM_SL_1" Then
  116.                         att(i).TextString = Cells(26, 8)    'Считываем данные с Excel OTM_SL_1
  117. 'Получение атрибутов OTM_SL_2
  118.                    ElseIf att(i).TagString = "OTM_SL_2" Then
  119.                         att(i).TextString = Cells(27, 8)    'Считываем данные с Excel OTM_SL_2
  120. 'Получение атрибутов OTM_SL_3
  121.                    ElseIf att(i).TagString = "OTM_SL_3" Then
  122.                         att(i).TextString = Cells(28, 8)    'Считываем данные с Excel OTM_SL_3
  123. 'Получение атрибутов OTM_CKV_1
  124.                    ElseIf att(i).TagString = "OTM_CKV_1" Then
  125.                         att(i).TextString = Cells(29, 8)    'Считываем данные с Excel OTM_CKV_1
  126. 'Получение атрибутов OTM_CKV_2
  127.                    ElseIf att(i).TagString = "OTM_CKV_2" Then
  128.                         att(i).TextString = Cells(30, 8)    'Считываем данные с Excel OTM_CKV_2
  129. 'Получение атрибутов OTM1-1.1
  130.                    ElseIf att(i).TagString = "OTM1-1.1" Then
  131.                         att(i).TextString = Cells(17, 14)   'Считываем данные с Excel OTM1-1.1
  132. 'Получение атрибутов OTM1-1.1_2
  133.                    ElseIf att(i).TagString = "OTM1-1.1_2" Then
  134.                         att(i).TextString = Cells(18, 14)   'Считываем данные с Excel OTM1-1.1_2
  135. 'Получение атрибутов OTM1-1.2
  136.                    ElseIf att(i).TagString = "OTM1-1.2" Then
  137.                         att(i).TextString = Cells(19, 14)   'Считываем данные с Excel OTM1-1.2
  138. 'Получение атрибутов OTM1-1.2_3
  139.                    ElseIf att(i).TagString = "OTM1-1.2_3" Then
  140.                         att(i).TextString = Cells(20, 14)   'Считываем данные с Excel OTM1-1.2_3
  141. 'Получение атрибутов OTM1-1.3
  142.                    ElseIf att(i).TagString = "OTM1-1.3" Then
  143.                         att(i).TextString = Cells(21, 14)   'Считываем данные с Excel OTM1-1.3
  144. 'Получение атрибутов OTM1-1.3_4
  145.                    ElseIf att(i).TagString = "OTM1-1.3_4" Then
  146.                         att(i).TextString = Cells(22, 14)   'Считываем данные с Excel OTM1-1.3_4
  147. 'Получение атрибутов OTM1-1.4
  148.                    ElseIf att(i).TagString = "OTM1-1.4" Then
  149.                         att(i).TextString = Cells(23, 14)   'Считываем данные с Excel OTM1-1.4
  150. 'Получение атрибутов OTM1-1.4_5
  151.                    ElseIf att(i).TagString = "OTM1-1.4_5" Then
  152.                         att(i).TextString = Cells(24, 14)   'Считываем данные с Excel OTM1-1.4_5
  153. 'Получение атрибутов OTM1-1.5
  154.                    ElseIf att(i).TagString = "OTM1-1.5" Then
  155.                         att(i).TextString = Cells(25, 14)   'Считываем данные с Excel OTM1-1.5
  156. 'Получение атрибутов OTM1-1.5_6
  157.                    ElseIf att(i).TagString = "OTM1-1.5_6" Then
  158.                         att(i).TextString = Cells(26, 14)   'Считываем данные с Excel OTM1-1.5_6
  159. 'Получение атрибутов OTM1-1.6
  160.                    ElseIf att(i).TagString = "OTM1-1.6" Then
  161.                         att(i).TextString = Cells(27, 14)   'Считываем данные с Excel OTM1-1.6
  162. 'Получение атрибутов OTM1-1.6_7
  163.                    ElseIf att(i).TagString = "OTM1-1.6_7" Then
  164.                         att(i).TextString = Cells(28, 14)   'Считываем данные с Excel OTM1-1.6_7
  165. 'Получение атрибутов OTM1-1.7
  166.                    ElseIf att(i).TagString = "OTM1-1.7" Then
  167.                         att(i).TextString = Cells(29, 14)   'Считываем данные с Excel OTM1-1.7
  168. 'Получение атрибутов OTM1-1.7_8
  169.                    ElseIf att(i).TagString = "OTM1-1.7_8" Then
  170.                         att(i).TextString = Cells(30, 14)   'Считываем данные с Excel OTM1-1.7_8
  171. 'Получение атрибутов OTM1-1.8
  172.                    ElseIf att(i).TagString = "OTM1-1.8" Then
  173.                         att(i).TextString = Cells(31, 14)   'Считываем данные с Excel OTM1-1.8
  174. 'Получение атрибутов OTM1-1.8_9
  175.                    ElseIf att(i).TagString = "OTM1-1.8_9" Then
  176.                         att(i).TextString = Cells(17, 17)   'Считываем данные с Excel OTM1-1.8_9
  177. 'Получение атрибутов OTM1-1.9
  178.                    ElseIf att(i).TagString = "OTM1-1.9" Then
  179.                         att(i).TextString = Cells(18, 17)   'Считываем данные с Excel OTM1-1.9
  180. 'Получение атрибутов OTM1-1.9_10
  181.                    ElseIf att(i).TagString = "OTM1-1.9_10" Then
  182.                         att(i).TextString = Cells(19, 17)   'Считываем данные с Excel OTM1-1.9_10
  183. 'Получение атрибутов OTM1-1.10
  184.                    ElseIf att(i).TagString = "OTM1-1.10" Then
  185.                         att(i).TextString = Cells(20, 17)   'Считываем данные с Excel OTM1-1.10
  186. 'Получение атрибутов OTM1-1.10_11
  187.                    ElseIf att(i).TagString = "OTM1-1.10_11" Then
  188.                         att(i).TextString = Cells(21, 17)   'Считываем данные с Excel OTM1-1.10_11
  189. 'Получение атрибутов OTM1-1.11
  190.                    ElseIf att(i).TagString = "OTM1-1.11" Then
  191.                         att(i).TextString = Cells(22, 17)   'Считываем данные с Excel OTM1-1.11
  192. 'Получение атрибутов OTM1-1.11_12
  193.                    ElseIf att(i).TagString = "OTM1-1.11_12" Then
  194.                         att(i).TextString = Cells(23, 17)   'Считываем данные с Excel OTM1-1.11_12
  195. 'Получение атрибутов OTM1-1.12
  196.                    ElseIf att(i).TagString = "OTM1-1.12" Then
  197.                         att(i).TextString = Cells(24, 17)   'Считываем данные с Excel OTM1-1.12
  198. 'Получение атрибутов OTM1-1.12_13
  199.                    ElseIf att(i).TagString = "OTM1-1.12_13" Then
  200.                         att(i).TextString = Cells(25, 17)   'Считываем данные с Excel OTM1-1.12_13
  201. 'Получение атрибутов OTM1-1.13
  202.                    ElseIf att(i).TagString = "OTM1-1.13" Then
  203.                         att(i).TextString = Cells(26, 17)   'Считываем данные с Excel OTM1-1.13
  204. 'Получение атрибутов OTM1-1.13_14
  205.                    ElseIf att(i).TagString = "OTM1-1.13_14" Then
  206.                         att(i).TextString = Cells(27, 17)   'Считываем данные с Excel OTM1-1.13_14
  207. 'Получение атрибутов OTM1-1.14
  208.                    ElseIf att(i).TagString = "OTM1-1.14" Then
  209.                         att(i).TextString = Cells(28, 17)   'Считываем данные с Excel OTM1-1.14
  210. 'Получение атрибутов OTM1-1.14_15
  211.                    ElseIf att(i).TagString = "OTM1-1.14_15" Then
  212.                         att(i).TextString = Cells(29, 17)   'Считываем данные с Excel OTM1-1.14_15
  213. 'Получение атрибутов OTM1-1.15
  214.                    ElseIf att(i).TagString = "OTM1-1.15" Then
  215.                         att(i).TextString = Cells(30, 17)   'Считываем данные с Excel OTM1-1.15
  216.                    End If
  217.                 Next
  218.         End If
  219.  
  220. 'Закрываем Excel
  221.        AP.Quit
  222.  
  223. End Sub

Не понятна сама причина не корректной работы штриховки. (в основном чертеже при выполнении VBA та же ситуация "штриховка вылетает").
Как это можно поправить, при создании блоков не делал привязку "базовой точки". Есть необходимость добавить "базовую точку", ну при исправлении блок штриховка исправляется на обычную. (В чем причина???, как исправить, таких блоков очень много).
 
« Последнее редактирование: 19-12-2016, 22:21:39 от Александр Ривилис »

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #61 : 19-12-2016, 14:27:40 »
ediczr2012, можете выслать файл с блоком?

Оффлайн ediczr2012Автор темы

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #62 : 19-12-2016, 14:53:45 »
Файл autoCAD c блоком прикрепил.
Первый исходный блок без базовой точки, второй блок исправленный с базовой точки.

Скрипты VBA и Exсel, приложил 3 и 5 файл.



 
« Последнее редактирование: 19-12-2016, 15:27:04 от ediczr2012 »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #63 : 19-12-2016, 22:22:40 »
ediczr2012
Не забываем про правильное форматирование кода на нашем форуме (смотри у меня в подписи).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1114
  • Карма: 173
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #64 : 20-12-2016, 00:03:42 »
Файлы не качал. ИМХО проблема может крыться в аннотативности штриховки - попробуй ее снять.
Фигню посоветовал-с...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #65 : 20-12-2016, 09:37:40 »
Ммм... колонки, помню как на Delphi их строил... эх молодость
Динамические блоки - это боль
У вас контур штриховок состоит из линий, лучше сделать контур каждой штриховки отдельной полилинией

Оффлайн ediczr2012Автор темы

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #66 : 20-12-2016, 13:28:23 »
Добрый день.

Попробовал сделать прямоугольники (построение прямоугольной полилинии) и штриховка "ассоциативная".
Результат отрицательный, штриховка теряет привязки и не заштриховывает прямоугольник при изменении.

Ну самое главное и основная проблема в том, что динамический блок сам на свое усмотрение меняет тип штриховки (при сохранении и повторной попытки отредактировать блок или внесении изменений).

Я уже просто в растерянности и не могу понять причины данного безобразия.  :o

Данная проблема была и обсуждалась на форуме: «Сообщество программистов Autodesk в СНГ / ADN Club / AutoCAD .NET API / Изменение параметра динамического блока в новом открытом документе?»
Извините, вам запрещён просмотр содержимого спойлеров.

Только данный вопрос и решение по C#. Чем закончилось?  ??? 

P.S. начинал за здравие, заканчиваю за упокой.
 

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #67 : 22-12-2016, 22:44:56 »
Записал видео проблемы по штриховке в динамическом блоке.
Ну ты, конечно, записал, так записал. ))
Почему не сделал обычный прямоугольник со штриховкой? Там же была бы видна твоя проблема! А ты выложил блоков, кодов и экселя, что тут надо минут 15 вникать, что же ты хочешь.. :)
В общем, советую на будущее делать маленькие тестовые примеры. Больше вероятность, что быстрей помогут, да и проще понимать всю суть вопроса самому.
Итак, я сделал тестовый блок со штриховкой (см. вложения - очевидно, что штриховка должна быть ассоциативной, и что она должна работать в блоке без манипуляций при помощи программирования). Далее сформировал простейший код VBA по вставке того самого блока:
Код - Visual Basic [Выбрать]
  1. Sub InsertBlock()
  2.     Dim blockRef As AcadBlockReference
  3.     Dim name As String
  4.     Dim pp As Variant
  5.     'Получаем точку вставки блока
  6.    pp = ThisDrawing.Utility.GetPoint(, "Укажите точку вставки блока:")
  7.     'Вставка блока
  8.    name = "Тестовый"
  9.     Set blockRef = ThisDrawing.ModelSpace.InsertBlock(pp, name, 1, 1, 1, 0)
  10.     'Получение динамических свойств блока
  11.    If blockRef.IsDynamicBlock = True Then
  12.         Props = blockRef.GetDynamicBlockProperties
  13.             For Index = LBound(Props) To UBound(Props)
  14.                 Set prop = Props(Index)
  15.                     If prop.PropertyName = "Длина" Then
  16.                     prop.Value = 75#
  17.                     ElseIf prop.PropertyName = "Ширина" Then
  18.                     prop.Value = 45#
  19.                     End If
  20.             Next
  21.     End If
  22. End Sub
Блок вставлялся некорректно, чтобы штриховка "выровнялась", приходилось нажимать на одну из ручек и оставлять ее в том же месте (см. скринкаст).
Далее я решил написать такой же код, только используя C# .NET:
Извините, вам запрещён просмотр содержимого спойлеров.
И стало работать все на УРА!

Не могу понять, в чем дело. Но одно ясно точно: вставка блока с корректным отображение штриховки работает, если использовать c#.NET, и не работает, если использовать VBA. Не могу сказать, в чем дело. Помню только, что когда писал на VBA очень избегал штриховок.


Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #68 : 26-12-2016, 13:08:39 »
В общем, ребзя, кому интересна данная тема, если мы дружно позовем Александра Наумовича, то возможно он и даст дельный совет к Новому Году насчет предыдущего поста.  ;)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #69 : 26-12-2016, 14:45:34 »
В общем, ребзя, кому интересна данная тема, если мы дружно позовем Александра Наумовича, то возможно он и даст дельный совет к Новому Году насчет предыдущего поста.  ;)
У меня не воспроизводится этот баг ни в AutoCAD 2016, ни в AutoCAD 2017 - оба со всеми обновлениями:

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #70 : 26-12-2016, 19:23:21 »
У меня не воспроизводится этот баг ни в AutoCAD 2016, ни в AutoCAD 2017 - оба со всеми обновлениями:
Вот это поворот. У меня AutoCAD 2017 тоже со всеми обновлениями - русский.

Но в языке же не может быть проблема!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #71 : 26-12-2016, 19:32:55 »
У меня AutoCAD 2017 тоже со всеми обновлениями - русский.
Не всеми:


Извините, вам запрещён просмотр содержимого спойлеров.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #72 : 26-12-2016, 20:08:51 »
Извините, вам запрещён просмотр содержимого спойлеров.
Спасибо за обновления.
Я обновил свой AutoCAD 2017 (русский), но обозначенная выше проблема осталась. Для меня она не является критичной, но вот тебе, ediczr2012, советую обратить внимание на подобные вещи и поэкспериментировать. Возможно, поможет.
В любом случае, пока что других мыслей на этот счет нет.
« Последнее редактирование: 26-12-2016, 20:24:52 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #73 : 26-12-2016, 20:28:05 »
Мне попадалась информация о том, что такие проблемы возникают в вертикальных приложениях (Mechanical, Civil 3D). Но вроде _REGEN помогает. Ничего по этому поводу сказать не могу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн qaaz07

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #74 : 03-01-2017, 20:12:39 »
Максим Маркевич, Максим Маркевич, Не ну Val() внутри CDbl() это совсем перестраховка. Ведь человек, который будет это делать ссылается на ячейку, в которой лежит число. Ну не будет там "43 яблока". Вполне можно было обойтись отдельно Val(), если уж на то пошло:
Код - Visual Basic [Выбрать]

У меня бывает и "43 яблока" и формула лежит в ячейке екселя. И нужно перенести все это в динамический блок Автокада. Как в этом случае быть?