Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Anagnost от 07-05-2019, 16:46:51

Название: Обновление свойств чертежа через excel
Отправлено: Anagnost от 07-05-2019, 16:46:51
Добрый день!
Очень нужен макрос для обновления значений созданных свойств чертежа Autocad 2016 через Excel.
Возможно, кто-то уже сталкивался с подобной задачей.
Буду очень признателен.
Название: Re: Обновление свойств чертежа через excel
Отправлено: Александр Ривилис от 07-05-2019, 16:59:07
Приветствую на форуме. Этот раздел посвящен программированию на VBA для AutoCAD. Т.е. нужно чтобы вы показали свой код и возможно кто-то поможет его исправить. Если же вам нужно, чтобы кто-то за вас решил вашу задачу, то вы ошиблись разделом и вам сюда: http://adn-cis.org/forum/index.php?board=38.0
Там вы можете заказать разработку и возможно найти исполнителя.
Название: Re: Обновление свойств чертежа через excel
Отправлено: Anagnost от 07-05-2019, 17:51:17
Спасибо за пояснение.
Вот часть исходного кода:

Код - Visual Basic [Выбрать]
  1. For Each objCell In Selection
  2.       strName = objCell.Value
  3.       varVal = objCell.Offset(0, 1).Value
  4.       strVal = varVal
  5.       On Error Resume Next
  6.       objAcadDoc.SummaryInfo.strName = strVal
  7. Next

Необходимо подружить автокад с экселем так, чтобы для каждого strName в файле эксель, совпадающего с именем свойства чертежа автокада, менялось его значение на strVal.
Название: Re: Обновление свойств чертежа через excel
Отправлено: Александр Ривилис от 07-05-2019, 18:46:35
Anagnost,
1. По поводу форматирования кода у нас на форуме читайте у меня в подписи и неуклонно соблюдайте это правило. Для первого раза я исправил сам.
2.
Необходимо подружить автокад с экселем так, чтобы для каждого strName в файле эксель, совпадающего с именем свойства чертежа автокада, менялось его значение на strVal.
И в чем проблема?
Название: Re: Обновление свойств чертежа через excel
Отправлено: Anagnost от 08-05-2019, 15:07:42
1. Спасибо, понял.
2. В том и все дело, что 6-я строчка не оправдывает возложенных на нее ожиданий))
Название: Re: Обновление свойств чертежа через excel
Отправлено: Владимир Шу от 08-05-2019, 15:28:26
Посмотрите тут: https://forum.dwg.ru/showthread.php?t=30995 и еще тут https://forum.dwg.ru/showthread.php?t=109960
Название: Re: Обновление свойств чертежа через excel
Отправлено: Александр Ривилис от 08-05-2019, 16:20:07
2. В том и все дело, что 6-я строчка не оправдывает возложенных на нее ожиданий))
И не должна. Смотрим пример из документации и делаем выводы:
Код - Visual Basic [Выбрать]
  1. Sub Example_SummaryInfo()
  2.     ' This example shows how to access drawing properties
  3.            
  4.     ' Add and display standard properties
  5.    ThisDrawing.SummaryInfo.Author = "John Doe"
  6.     ThisDrawing.SummaryInfo.Comments = "Includes all ten levels of Building Five"
  7.     ThisDrawing.SummaryInfo.HyperlinkBase = "http://www.autodesk.com"
  8.     ThisDrawing.SummaryInfo.Keywords = "Building Complex"
  9.     ThisDrawing.SummaryInfo.LastSavedBy = "JD"
  10.     ThisDrawing.SummaryInfo.RevisionNumber = "4"
  11.     ThisDrawing.SummaryInfo.Subject = "Plan for Building Five"
  12.     ThisDrawing.SummaryInfo.Title = "Building Five"
  13.  
  14.     Author = ThisDrawing.SummaryInfo.Author
  15.     Comments = ThisDrawing.SummaryInfo.Comments
  16.     HLB = ThisDrawing.SummaryInfo.HyperlinkBase
  17.     KW = ThisDrawing.SummaryInfo.Keywords
  18.     LSB = ThisDrawing.SummaryInfo.LastSavedBy
  19.     RN = ThisDrawing.SummaryInfo.RevisionNumber
  20.     Subject = ThisDrawing.SummaryInfo.Subject
  21.     Title = ThisDrawing.SummaryInfo.Title
  22.     MsgBox "The standard drawing properties are " & vbCrLf & _
  23.             "Author = " & Author & vbCrLf & _
  24.             "Comments = " & Comments & vbCrLf & _
  25.             "HyperlinkBase = " & HLB & vbCrLf & _
  26.             "Keywords = " & KW & vbCrLf & _
  27.             "LastSavedBy = " & LSB & vbCrLf & _
  28.             "RevisionNumber = " & RN & vbCrLf & _
  29.             "Subject = " & Subject & vbCrLf & _
  30.             "Title = " & Title & vbCrLf
  31.  
  32.     ' Add and display custom properties
  33.    Dim Key0 As String
  34.     Dim Value0 As String
  35.     Dim Key1 As String
  36.     Dim Value1 As String
  37.     Dim CustomPropertyBranch As String
  38.     Dim PropertyBranchValue As String
  39.     Dim CustomPropertyZone As String
  40.     Dim PropertyZoneValue As String
  41.  
  42.     CustomPropertyBranch = "Branch"
  43.     PropertyBranchValue = "Main"
  44.     CustomPropertyZone = "Zone"
  45.     PropertyZoneValue = "Industrial"
  46.  
  47.     ' Add custom properties
  48.    If (ThisDrawing.SummaryInfo.NumCustomInfo >= 1) Then
  49.         ThisDrawing.SummaryInfo.SetCustomByIndex 0, CustomPropertyBranch, PropertyBranchValue
  50.     Else
  51.         ThisDrawing.SummaryInfo.AddCustomInfo CustomPropertyBranch, PropertyBranchValue
  52.     End If
  53.  
  54.     If (ThisDrawing.SummaryInfo.NumCustomInfo >= 2) Then
  55.          ThisDrawing.SummaryInfo.SetCustomByKey CustomPropertyBranch, "Satellite"
  56.     Else
  57.          ThisDrawing.SummaryInfo.AddCustomInfo CustomPropertyZone, PropertyZoneValue
  58.     End If
  59.  
  60.     'Get custom properties
  61.    ThisDrawing.SummaryInfo.GetCustomByIndex 0, Key0, Value0
  62.     Key1 = CustomPropertyZone
  63.     ThisDrawing.SummaryInfo.GetCustomByKey Key1, Value1
  64.  
  65.     MsgBox "The custom drawing properties are " & vbCrLf & _
  66.             "First property name = " & Key0 & vbCrLf & _
  67.             "First property value = " & Value0 & vbCrLf & _
  68.             "Second property name = " & Key1 & vbCrLf & _
  69.             "Second property value = " & Value1 & vbCrLf
  70. End Sub
Название: Re: Обновление свойств чертежа через excel
Отправлено: Anagnost от 15-05-2019, 12:04:45
Большое спасибо за ответы, но, к сожалению, все попытки привязать приведенные коды к моей задаче для 2016 Автокада успехом не увенчались.
Название: Re: Обновление свойств чертежа через excel
Отправлено: Александр Ривилис от 15-05-2019, 20:43:54
Большое спасибо за ответы, но, к сожалению, все попытки привязать приведенные коды к моей задаче для 2016 Автокада успехом не увенчались.
Значит ищите специалиста.