iLogic. Инициатор событий в Inventor. Автосохранение чертежа в PDF

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ม.ค. 2025

ความคิดเห็น • 31

  • @EvgeneyZhalnerovich-ow2mv
    @EvgeneyZhalnerovich-ow2mv 6 หลายเดือนก่อน

    Добрый день! очень клёвое видео, Спасибо!
    А можно ли правила написанные в iLogic, вынести кнопкой, в идеале на панель быстрого доступа? У меня для деталей мех.обработки достаточно чертёж "сохранить как PDF", а вот для листовых деталей ещё нужен DXF, поэтому написал правило "сохранить как PDF+DXF", но как их вынести в более доступное место?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  6 หลายเดือนก่อน +1

      Добрый день! Спасибо за обратную связь!
      По вашему вопросу: к сожалению, правило ilogic нельзя вынести в панель отдельной кнопкой (возможно в будущих версиях такое появится)
      Наиболее близкое к вас - добавление кнопок из макросов VBA. Возможно по этой теме, запишу меленькое видео-руководство
      А так, по хорошему, кнопки добавляются написанием своих аддинов для инентора

    • @EvgeneyZhalnerovich-ow2mv
      @EvgeneyZhalnerovich-ow2mv 6 หลายเดือนก่อน

      @@dxf-autohelpdesk , покопал нарыл код для макросов для решения моей задачи, одна проблема - СДЕЛАТЬ ТАК ЧТОБЫ НОВЫЕ ФАЙЛЫ DXF и PDF СОХРАНИЛИСЬ ПО ТОМУ ЖЕ ПУТИ ЧТО И ФАЙЛЫ inventor????... ниже код для VBA редактора, на оба макроса сразу.... в последний строчках что-то нужно писать, а что.... помогите плиз)))
      --------------------------------------------------------------------------------------
      Public Sub PublishDXF()
      ' Get the DXF translator Add-In.
      Dim DXFAddIn As TranslatorAddIn
      Set DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
      'Set a reference to the active document (the document to be published).
      Dim oDocument As Document
      Set oDocument = ThisApplication.ActiveDocument
      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
      ' Check whether the translator has 'SaveCopyAs' options
      If DXFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
      Dim strIniFile As String
      strIniFile = "C:\tempDXFOut.ini"
      ' Create the name-value that specifies the ini file to use.
      oOptions.Value("Export_Acad_IniFile") = strIniFile
      End If
      'Set the destination file name
      oDataMedium.FileName = "d:\testDXF.dxf"
      'Publish document.
      Call DXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
      End Sub
      --------------------------------------------------------------------------------------
      Public Sub PublishPDF()
      ' Get the PDF translator Add-In.
      Dim PDFAddIn As TranslatorAddIn
      Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
      'Set a reference to the active document (the document to be published).
      Dim oDocument As Document
      Set oDocument = ThisApplication.ActiveDocument
      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
      ' 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") = 1
      'oOptions.Value("Custom_End_Sheet") = 4
      End If
      'Set the destination file name
      oDataMedium.FileName = "d:\testPDF.pdf"
      'Publish document.
      Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
      End Sub

  • @АлександрК-р9д
    @АлександрК-р9д 3 ปีที่แล้ว +1

    Добрый день, подскажите пожалуйста, как сохранять PDF для многолистового файла Inventor, чтобы все листы из Inventor сохранялись как один многостраничный PDF файл?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  3 ปีที่แล้ว

      Добрый день!
      На сколько мне известно, по умолчанию, при экспорте файла в PDF, автоматически сохраняются все листы данного чертежа, в один файл

    • @alexey0290
      @alexey0290 2 ปีที่แล้ว

      @@dxf-autohelpdesk , а наоборот. Многолистовой файл чертежа сохранить как несколько файлов pdf возможно?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  2 ปีที่แล้ว

      @@alexey0290 Да! Но это уже совсем другая история!:)

    • @alexey0290
      @alexey0290 2 ปีที่แล้ว

      @@dxf-autohelpdesk, решается ли эта задача средствами ilogic?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  2 ปีที่แล้ว

      @@alexey0290 Да, но это не тривиально!

  • @Мессия-ь8ф
    @Мессия-ь8ф 10 หลายเดือนก่อน

    Можно ли задать какой-нибудь счетчик или таймер в правилах? Хочу, чтобы происходило обычное автосохранение по времени

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  10 หลายเดือนก่อน

      Если я вас правильно понимаю, вы хотите сделать примерно такое авто сохранение как в автокаде/Ворде
      В рамках ilogic такое будет сложно сделать

  • @ДмитрийФедотов-ц8п
    @ДмитрийФедотов-ц8п ปีที่แล้ว

    Добрый день! Огромное спасибо за столь подробное описание процесса и написание кода!
    Подскажите пожалуйста, данный код сохраняет .pdf только первой страницы чертежа но почему то не все листы чертежа, а если чертеж на 2 и более страницах, как дописать код, чтобы сохранялись все страницы в одном файле .pdf

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  ปีที่แล้ว +1

      Добрый день!
      Скорее всего у вас в Параметрах сохранения PDF выставлен диапозон печати: текущий листа
      Измените это значение на Все листы
      Таким образом, в дальнейшем, после отработки правила, будут экспортированы все листы чертежа
      подробнее тут: recordit.co/rPkpAnzIvH

    • @ДмитрийФедотов-ц8п
      @ДмитрийФедотов-ц8п ปีที่แล้ว

      @@dxf-autohelpdesk Огромное Спасибо! Действительно все заработало!
      Спасибо за оперативный ответ!

    • @ДмитрийФедотов-ц8п
      @ДмитрийФедотов-ц8п ปีที่แล้ว

      @@dxf-autohelpdesk Подскажите пожалуйста, как дописать код в правило, чтобы выскакивало диалоговое окно с вопросом сохранить копию пдф или нет.
      не совсем удобно чтобы всегда перезаписывался файл.

  • @Acheslav
    @Acheslav 3 ปีที่แล้ว

    Один из немногих каналов, которые продвигают Inventor и iLogic. Супер! Подскажите, как с помощью iLogic "экспортировать грань как..."

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  3 ปีที่แล้ว +2

      Ниже код, который позволяет экспортировать выделенную грань в формат DXF:
      Dim DXFAddIn As TranslatorAddIn
      DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
      'Set a reference to the active document (the document to be published).
      Dim oDocument As Document
      oDocument = ThisApplication.ActiveDocument
      Dim oContext As TranslationContext
      oContext = ThisApplication.TransientObjects.CreateTranslationContext
      oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
      ' Create a NameValueMap object
      Dim oOptions As NameValueMap
      oOptions = ThisApplication.TransientObjects.CreateNameValueMap
      ' Create a DataMedium object
      Dim oDataMedium As DataMedium
      oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
      ' Check whether the translator has 'SaveCopyAs' options
      If DXFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
      Dim strIniFile As String
      strIniFile = "C:\temp\DXF_R12.ini" 'this is a pre-configed ini file
      ' Create the name-value that specifies the ini file to use.
      oOptions.Value("Export_Acad_IniFile") = strIniFile
      End If
      'Set the destination file name
      oDXFFullFileName = ThisDoc.PathAndFileName(False) & ".dxf"
      oDataMedium.FileName = ThisDoc.PathAndFileName(False) & "_ThrowAway.dxf"
      'Publish throw away document.
      DXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
      'delete file
      If System.IO.File.Exists( oDataMedium.FileName ) = True Then
      System.IO.File.Delete( oDataMedium.FileName )
      End If
      Dim oCtrlDef As ButtonDefinition
      oCtrlDef = ThisApplication.CommandManager.ControlDefinitions.Item("GeomToDXFCommand")
      ThisApplication.CommandManager.PostPrivateEvent(PrivateEventTypeEnum.kFileNameEvent, oDXFFullFileName)
      oCtrlDef.Execute

    • @egorlobahin8270
      @egorlobahin8270 2 ปีที่แล้ว

      @@dxf-autohelpdesk это чё такое? О_О

  • @voliahim
    @voliahim 2 ปีที่แล้ว

    Здравствуйте. Спасибо за видео. А как сохранить pdf файлы в другую папку? Как в коде указать путь сохранения?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  2 ปีที่แล้ว

      Добрый день!
      Вы можете имя файла и директорию самостоятельно указать в переменной PDFFileName.
      Например:
      PDFFileName = "c:\pdffile.pdf"
      После отработки правила, в корне диска С, будет создан PDF file с названием "pdffile.pdf".

    • @voliahim
      @voliahim 2 ปีที่แล้ว

      @@dxf-autohelpdesk А чтобы сохранялось в папку проект/чертежи/pdf и с именем файла чертежа?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  2 ปีที่แล้ว

      Напишите на почту: dxfautohelp@gmail.com

  • @Takwas8
    @Takwas8 ปีที่แล้ว

    Здравствуй. Подскажи пожалуйста, что это значит?
    Ошибка в строке 4 : "MagBox" не объявлен. Может быть недоступен из-за своего уровня защиты.
    Ошибка в строке 4 : "MagBoxStyle" не объявлен. Может быть недоступен из-за своего уровня защиты.
    Вроде как то получилось. Но ещё вопрос, если можно. А можно как то сделать, если pdf файл создан, но ты ещё раз редактируешь чертёж, и заново его закрываешь и у меня ошибку:
    Ошибка в строке 2 правила ExportPDF в документе Удалить!!!.idw
    Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))
    Я вообще не программист, но думаю, он ошибку выдаёт, т.к. pdf уже есть и он не может его заменить. Спасибо.

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  ปีที่แล้ว +1

      Думаю проблема в орфографической ошибке!
      не "MagBox", а "MsgBox"
      и соответсвенно не "MagBoxStyle", а "MsgBoxStyle"

    • @Takwas8
      @Takwas8 ปีที่แล้ว

      @@dxf-autohelpdesk Получилось. Хотя у меня и через Mag работало, криво но работало. Спасибо большое

  • @ДанилПриходько-г4р
    @ДанилПриходько-г4р 3 ปีที่แล้ว

    Добрый день. А как можно изменить имя файла сохраненного документа с новым расширением? Можно ли имя файла взять с параметра сборки?

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  3 ปีที่แล้ว +1

      Добрый день!
      если вы пытаетесь эскортировать файл в другое расширение(например, файл ipt в step) - то нужно пользоваться транслятоми
      при этом, имя экспортируемого файла, можно выбрать какое угодно, в том числе, имя файла сборки

    • @ДанилПриходько-г4р
      @ДанилПриходько-г4р 3 ปีที่แล้ว

      @@dxf-autohelpdesk Dim DXFFileName = ThisDoc.PathAndFileName(False) & Parameter("P.БСК.iam.БСК") & ".DXF" - вот так прописываю. При сохранение в dxf имя файла состоит из название чертежа .dwg и моего экспортируемого параметра. Как убрать название части от чертежа? Спасибо

    • @dxf-autohelpdesk
      @dxf-autohelpdesk  3 ปีที่แล้ว +1

      @@ДанилПриходько-г4р
      Если я вас правильно понял, то нужно делать так:
      ThisDoc.Path & "\" & Parameter("P.БСК.iam.БСК") & ".DXF"

    • @ДанилПриходько-г4р
      @ДанилПриходько-г4р 3 ปีที่แล้ว

      @@dxf-autohelpdesk, помогло, спасибо