Алексей Романов (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 117 След.
Ошибка при выводе данных в excel
[QUOTE]m.mihaylov1996@yandex.ru пишет:
Подскажите, пожалуйста, как это можно исправить?[/QUOTE]Если еще актуально...
Тут пара ошибок, например в values=MultiValue.List(centerPt.X) в правой части должно быть имя параметра, сообщение об ошибке отключено строкой MultiValue.Quiet=True...
А зачем такие сложности? Может сделать попроще:[CODE]GoExcel.Open("D:\Bat.xls","Лист1")
For Each oOccurrence In ThisDoc.Document.ComponentDefinition.Occurrences
centerPt = iProperties.CenterOfGravityOfComponent(oOccurrence.Name)
iProperties.Value(oOccurrence.Name, "custom", "X") = centerPt.X
i += 1
GoExcel.CellValue("A" + i.ToString) = centerPt.X
Next
GoExcel.Save
GoExcel.Close
[/CODE]
Изменено: Алексей Романов - 17.07.2018 10:14:14
Спецификация и чертежи
[QUOTE]Александр2018 пишет:
Вот бы и мне такой макрос[/QUOTE]Попробуй такой вариант. В чертежах нужно создать такое правило на iLogic (можно в шаблонах):[CODE]Try
If ThisDoc.Document.Sheets(1).DrawingViews.Count = 0 Then Exit Sub
dName = Replace(ThisDoc.Document.DisplayName, " ", "_")
pDoc = ThisDrawing.ModelDocument
oAttribManager = pDoc.AttributeManager
oObj = oAttribManager.FindObjects("Drawings")
If oObj.Count > 0 Then
   oObj.Clear
   oObj = oAttribManager.FindObjects("Drawings", dName)
   If oObj.Count = 0 Then
       oAtt = pDoc.AttributeSets("Drawings").Add(dName, kStringType, ThisDoc.Document.FullFileName)
   End If
Else
   oAttSet = pDoc.AttributeSets.Add("Drawings")
   oAtt = oAttSet.Add(dName, kStringType, ThisDoc.Document.FullFileName)
End If
Catch
End Try[/CODE]Для автомата повесить на событие Перед сохранением документа.

В редакторе VBA создаете модуль и копируете туда этот код:[CODE]Public Sub OpenDrawing()
   If ThisApplication.ActiveDocumentType = kDrawingDocumentObject Then Exit Sub
   Dim oAttribManager As AttributeManager
   Set oAttribManager = ThisApplication.ActiveDocument.AttributeManager
   
   Dim oObj As ObjectCollection
   Set oObj = oAttribManager.FindObjects("Drawings")
   
   If oObj.Count > 0 Then
       Dim oAttSet As AttributeSet
       Set oAttSet = oObj(1).AttributeSets("Drawings")
       Dim oAtt As Inventor.Attribute
       On Error Resume Next
       For Each oAtt In oAttSet
           ThisApplication.Documents.Open (oAtt.value)
       Next
   Else
       MsgBox "В модели нет ссылки на чертеж!"
   End If
End Sub[/CODE]В средах детали и сборки создаете кнопки для удобства запуска этого макроса...
Спецификация и чертежи
[QUOTE]Александр2018 пишет:
Мда... Тема походу ни кого не заинтересовала... ЖАЛЬ... Значит ни какой возможности нет...[/QUOTE]Возможность есть, у меня давно это работает. При создании чертежа в атрибуты модели прописывается путь к чертежу, в среде модели макрос ищет атрибут чертежа, если он есть, открывается чертеж или список (сборка/специя)...
Справа кнопка для открытия родительских (вышестоящих) сборок...
чертеж.png (30.78 КБ)
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Владимир - пишет:
И не нашёл параметра который отвечает за имя файла.[/QUOTE]Это не оно? (см. скрин)
file.png (53.76 КБ)
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Александр2018 пишет:
Ребята помогите сейчас голова треснет[/QUOTE]Значения параметров модели можно в чертеж средствами АИ вытаскивать и не париться))
param.png (67.7 КБ)
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Александр2018 пишет:
маленькая гадость как номер первого листа портит всю картину[/QUOTE]Подход со слоями неправильный (имхо). Надо просто создать в чертеже пользовательское свойство, например "FirstSheet" и связать его с основной надписью. Создать правило iLogic:[CODE]If ThisDoc.Document.Sheets.Count > 1 Then
iProperties.Value("Custom", "FirstSheet") = "1"
Else
iProperties.Value("Custom", "FirstSheet") = ""
End If
iLogicVb.UpdateWhenDone = True[/CODE]Правило вешаем на событие...
Вопросы от новичка, Последовательность проектирования
[QUOTE]IvanS пишет:
В столбце КОЛ вмещается максимум три символа, после чего он переносит на след строку. Мне бы это исправить.[/QUOTE]Я меняю ширину столбца, по ЕСКД это допускается, плюс иногда использую сжатие для текста...
Изменено: Алексей Романов - 08.05.2018 13:17:48
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
Имеются настроенные шаблоны чертежей/деталей/сборок (прописано: Начальник отдела, Проверил, Нормоконтроль, Утвердил ...). [/QUOTE]Самое простое, поля Основной надписи надо привязать к шаблону Чертежа и не париться)
В стандартных деталях в редакторе СС можно создать дополнительные колонки и привязать к этим свойствам. НО придется эти детали скопировать в свою библиотеку (чтение/запись), родные не редактируются(только чтение) :))
Я так и делаю, все равно этим деталям нужно присваивать свойство Категория, поле Обозначение переносить в поле Наименование...
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
Всвойствах спецификации выбираю по ГОСТ 2.113, инвентор создает ексель файл по форме группового чертежа, но количество заполнено только для первого исполнения(([/QUOTE][b]n0b0dy,[/b] ты не понял главного из этого поста, это создается в РОДНОЙ специи АИ, а не в костыле Пояснение(ESKD), Ёксель здесь абсолютно не нужен... Шаблон специи я создал для себя сам, если интересно возьми [URL=https://yadi.sk/d/LuR_pCiT3RmumR]здесь[/URL] (АИ2016), там же и шаблон специи для чертежа. Если сборка выполнена как iAssembly, то в ВОМ сборки появится возможность выбрать исполнение (см. скрин), оно и пойдет в специю чертежа))). Все сразу не расскажешь, постараюсь пояснить по мере поступления вопросов...
UPD. А если выбрать Все элементы, то может и Ёксель их подхватит?
ddd.png (95.78 КБ)
Изменено: Алексей Романов - 25.01.2018 16:01:57
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
Как в инвенторе создать групповую спецификацию? Можно ли это сделать стандартными инструментами?[/QUOTE]Можно, посмотри [URL=https://cad.ru/ru/forum/index.php?PAGE_NAME=read&FID=20&TID=9245&TITLE_SEO=9245-gruppovaya-spetsifikatsiya&tags=%25E4%25E5%25F0%25E5%25E2%25FF%25ED%25ED%25FB%25E5+%25EA%25EE%25ED%25F1%25F2%25F0%25F3%25EA%25F6%25E8%25E8%252C%25E0%25F0%25F5%25E8%25F2%25E5%25EA%25F2%25EE%25F0+%25E4%25E5%25F0%25E5%25E2%25FF%25ED%25ED%25FB%25F5+%25E4%25EE%25EC%25EE%25E2%252C%25EA%25EE%25ED%25F1%25F2%25F0%25F3%25EA%25F6%25E8%25E8%252C%25E4%25E5%25F0%25E5%25E2%25FF%25ED%25ED%25FB%25E5+%25E4%25EE%25EC%25E0%252C%25EA%25EE%25ED%25F1%25F2%25F0%25F3%25EA%25F2%25EE%25F0+%25E4%25E5%25F0%25E5%25E2%25FF%25ED%25ED%25FB%25F5+%25E4%25EE%25EC%25EE%25E2]здесь[/URL]
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
На Вашем скриншоте случайно не "Столбец пользовательского параметра"?[/QUOTE]Он самый, эт я прутки круглого сечения в СС закинул. Версия АИ2016, вроде всегда так было, операторы еще посмотри...
сс1.png (27.86 КБ)
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
В диапазоне прописываю нужные значения для каждой сточки. Публикую библиотеку. Но при вставке этой библиотечной детали графа длина не имеет ограничений. А мне необходимо ограничить эти длины. Как быть? Куда копать?[/QUOTE]Проблема решена? У тебя на скрине Диапазона какие-то странные операторы стоят: см.скрин.
сс.png (21.68 КБ)
Вопросы от новичка, Последовательность проектирования
[QUOTE]sloter пишет:
Обломно, что только 5 файлов за раз обрабатывает. Не удобно. Есть ли решение без ограничений?[/QUOTE]В справке есть пример на VBA, давно им пользуюсь. Все открытые чертежи конвертирует в pdf. Из проводника открываю сразу 20-30 чертежей, через 10-20 сек. получаю готовые pdf... Там последнюю строку нужно заремкать, если не нужно закрывать чертежи.[CODE]Public Sub PublishPDF()
   ' Get the PDF translator Add-In.
   Dim PDFAddIn As TranslatorAddIn
   Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
   
   Dim oContext As TranslationContext
   Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
   oContext.Type = kFileBrowseIOMechanism

   ' Create a NameValueMap object
   Dim oOptions As NameValueMap
   Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

   ' Create a DataMedium object
   Dim oDataMedium As DataMedium
   Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium

   Dim oDocument As Document
   For Each oDocument In ThisApplication.Documents.VisibleDocuments
       If oDocument.DocumentType = kDrawingDocumentObject Then
           ' Check whether the translator has 'SaveCopyAs' options
           If PDFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
               ' Options for drawings...
               oOptions.value("All_Color_AS_Black") = 0
               'oOptions.Value("Remove_Line_Weights") = 0
               'oOptions.Value("Vector_Resolution") = 400
               oOptions.value("Sheet_Range") = kPrintAllSheets
               'oOptions.Value("Custom_Begin_Sheet") = 2
               'oOptions.Value("Custom_End_Sheet") = 4
           End If
           'Set the destination file name
           oDataMedium.FileName = Replace(oDocument.FullFileName, "idw", "pdf")
       
           'Publish document.
           Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
           'закрытие документа без сохранения
           oDocument.Close True
       End If
   Next
End Sub
[/CODE]
Вопросы от новичка, Последовательность проектирования
[QUOTE]n0b0dy пишет:
У меня есть такой код, но им тоже долго. [/QUOTE]Это немного не то, я выкладывал тут, найти не могу, Вот что я нашел у себя в архиве, как вариант макрос на VBA: [CODE]Option Explicit
Public Sub WriteSheetMetalToDXF()
   On Error Resume Next
   If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject Then
       MsgBox "Работаем только со сборками!"
       Exit Sub
   End If
 
   Dim asDoc As AssemblyDocument
   Set asDoc = ThisApplication.ActiveDocument
   
   Dim ptDoc As Document
   For Each ptDoc In asDoc.AllReferencedDocuments
       If ptDoc.ComponentDefinition.Type = kSheetMetalComponentDefinitionObject Then
           If ptDoc.ComponentDefinition.HasFlatPattern = False Then
               Call ptDoc.ComponentDefinition.Unfold
           Else
               Call ptDoc.ComponentDefinition.FlatPattern.Edit
           End If
           
           Dim oPatch As String
           oPatch = ptDoc.FullFileName
           oPatch = Replace(oPatch, "ipt", "dxf")
           
           Dim oDataIO As DataIO
           Set oDataIO = ptDoc.ComponentDefinition.DataIO
       
           Dim sOut As String
           ' Build the string that defines the format of the DXF file.
           sOut = "FLAT PATTERN DXF?AcadVersion=2000&OuterProfileLayer=Layer"
           
           ' Create the DXF file.
           oDataIO.WriteDataToFile sOut, oPatch
           Call ptDoc.ComponentDefinition.FlatPattern.ExitEdit
       End If
   Next
End Sub[/CODE]Здесь макрос просто тупо складывает файлы dxf рядом с исходниками.
По поводу ТТ не получится фокус с костылем ЕСКД, если только просто текстом написать...
Групповой чертеж
[QUOTE]Александр2018 пишет:
если не секрет то как вы это сделали?[/QUOTE]На чертеже создается вид параметрической детали, вставляется обыкновенная таблица, в качестве источника данных выбирается созданный вид. Далее выбираются нужные колонки, после вставки в чертеж настраивается внешний вид (шапка, форматирование и т.п. Если шапка не устраивает, она подавляется и отрисовывается скетч символом. Вроде все))
пд1.png (21.31 КБ)
Групповой чертеж
[QUOTE]brigval пишет:
В данном случае достаточно двух столбцов "Обозначение" и "А, мм"[/QUOTE]У себя я так и делаю, но вопрос на скрине в первом топике, по ЕСКД есть и такой вариант, я попытался показать, как сделать сложные шапки, на каждом предприятии свои требования...
Групповой чертеж
Так что ли. Если че, шапка в таблице отключена и нарисована скетч символом...
пд.png (15.84 КБ)
Групповой чертеж
[QUOTE]Александр2018 пишет:
Стандарт ИНВЕНОТРа не позволяет выполнить такую таблицу или я ошибаюсь.[/QUOTE]Если деталь параметрическая, то при создании чертежа там есть возможность вставить таблицу исполнений. Тут на скрине что-то с таблицей не так, основное исполнение тоже должно иметь размеры...
VBA. Помогите с работой макроса.
Почти понятно, пара моментов. Правило запускается из сборки (смутило в правиле проверка типа документа, это лишнее).
Макрос запускается не в детали, а в общем проекте, тогда в нем нужно искать вставленную деталь по какому-то признаку, например DisplayName, типа:[CODE]Dim doc As Document
For Each doc In ThisApplication.Documents
   If doc.DisplayName = "myDocument" Then
      Exit For
   Else
      Set doc = Nothing
   End If
Next
' тут наша деталь
If Not doc Is Nothing Then
   Dim oParameters As Parameters
   Set oParameters = doc.ComponentDefinition.Parameters
   '......
End If[/CODE]Дополнительно делать проверку, если пользователь изменил название детали...
Ну это типа идеи)))
VBA. Помогите с работой макроса.
Макрос запускается из среды сборки? А деталь как вставляется, программно или ручками? Надо просто на нее получить ссылку...
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 117 След.