Добрый день! очень клёвое видео, Спасибо! А можно ли правила написанные в iLogic, вынести кнопкой, в идеале на панель быстрого доступа? У меня для деталей мех.обработки достаточно чертёж "сохранить как PDF", а вот для листовых деталей ещё нужен DXF, поэтому написал правило "сохранить как PDF+DXF", но как их вынести в более доступное место?
Добрый день! Спасибо за обратную связь! По вашему вопросу: к сожалению, правило ilogic нельзя вынести в панель отдельной кнопкой (возможно в будущих версиях такое появится) Наиболее близкое к вас - добавление кнопок из макросов VBA. Возможно по этой теме, запишу меленькое видео-руководство А так, по хорошему, кнопки добавляются написанием своих аддинов для инентора
@@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
Добрый день, подскажите пожалуйста, как сохранять PDF для многолистового файла Inventor, чтобы все листы из Inventor сохранялись как один многостраничный PDF файл?
Добрый день! Огромное спасибо за столь подробное описание процесса и написание кода! Подскажите пожалуйста, данный код сохраняет .pdf только первой страницы чертежа но почему то не все листы чертежа, а если чертеж на 2 и более страницах, как дописать код, чтобы сохранялись все страницы в одном файле .pdf
Добрый день! Скорее всего у вас в Параметрах сохранения PDF выставлен диапозон печати: текущий листа Измените это значение на Все листы Таким образом, в дальнейшем, после отработки правила, будут экспортированы все листы чертежа подробнее тут: recordit.co/rPkpAnzIvH
@@dxf-autohelpdesk Подскажите пожалуйста, как дописать код в правило, чтобы выскакивало диалоговое окно с вопросом сохранить копию пдф или нет. не совсем удобно чтобы всегда перезаписывался файл.
Ниже код, который позволяет экспортировать выделенную грань в формат 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
Добрый день! Вы можете имя файла и директорию самостоятельно указать в переменной PDFFileName. Например: PDFFileName = "c:\pdffile.pdf" После отработки правила, в корне диска С, будет создан PDF file с названием "pdffile.pdf".
Здравствуй. Подскажи пожалуйста, что это значит? Ошибка в строке 4 : "MagBox" не объявлен. Может быть недоступен из-за своего уровня защиты. Ошибка в строке 4 : "MagBoxStyle" не объявлен. Может быть недоступен из-за своего уровня защиты. Вроде как то получилось. Но ещё вопрос, если можно. А можно как то сделать, если pdf файл создан, но ты ещё раз редактируешь чертёж, и заново его закрываешь и у меня ошибку: Ошибка в строке 2 правила ExportPDF в документе Удалить!!!.idw Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL)) Я вообще не программист, но думаю, он ошибку выдаёт, т.к. pdf уже есть и он не может его заменить. Спасибо.
Добрый день! если вы пытаетесь эскортировать файл в другое расширение(например, файл ipt в step) - то нужно пользоваться транслятоми при этом, имя экспортируемого файла, можно выбрать какое угодно, в том числе, имя файла сборки
@@dxf-autohelpdesk Dim DXFFileName = ThisDoc.PathAndFileName(False) & Parameter("P.БСК.iam.БСК") & ".DXF" - вот так прописываю. При сохранение в dxf имя файла состоит из название чертежа .dwg и моего экспортируемого параметра. Как убрать название части от чертежа? Спасибо
Добрый день! очень клёвое видео, Спасибо!
А можно ли правила написанные в iLogic, вынести кнопкой, в идеале на панель быстрого доступа? У меня для деталей мех.обработки достаточно чертёж "сохранить как PDF", а вот для листовых деталей ещё нужен DXF, поэтому написал правило "сохранить как PDF+DXF", но как их вынести в более доступное место?
Добрый день! Спасибо за обратную связь!
По вашему вопросу: к сожалению, правило ilogic нельзя вынести в панель отдельной кнопкой (возможно в будущих версиях такое появится)
Наиболее близкое к вас - добавление кнопок из макросов VBA. Возможно по этой теме, запишу меленькое видео-руководство
А так, по хорошему, кнопки добавляются написанием своих аддинов для инентора
@@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
Добрый день, подскажите пожалуйста, как сохранять PDF для многолистового файла Inventor, чтобы все листы из Inventor сохранялись как один многостраничный PDF файл?
Добрый день!
На сколько мне известно, по умолчанию, при экспорте файла в PDF, автоматически сохраняются все листы данного чертежа, в один файл
@@dxf-autohelpdesk , а наоборот. Многолистовой файл чертежа сохранить как несколько файлов pdf возможно?
@@alexey0290 Да! Но это уже совсем другая история!:)
@@dxf-autohelpdesk, решается ли эта задача средствами ilogic?
@@alexey0290 Да, но это не тривиально!
Можно ли задать какой-нибудь счетчик или таймер в правилах? Хочу, чтобы происходило обычное автосохранение по времени
Если я вас правильно понимаю, вы хотите сделать примерно такое авто сохранение как в автокаде/Ворде
В рамках ilogic такое будет сложно сделать
Добрый день! Огромное спасибо за столь подробное описание процесса и написание кода!
Подскажите пожалуйста, данный код сохраняет .pdf только первой страницы чертежа но почему то не все листы чертежа, а если чертеж на 2 и более страницах, как дописать код, чтобы сохранялись все страницы в одном файле .pdf
Добрый день!
Скорее всего у вас в Параметрах сохранения PDF выставлен диапозон печати: текущий листа
Измените это значение на Все листы
Таким образом, в дальнейшем, после отработки правила, будут экспортированы все листы чертежа
подробнее тут: recordit.co/rPkpAnzIvH
@@dxf-autohelpdesk Огромное Спасибо! Действительно все заработало!
Спасибо за оперативный ответ!
@@dxf-autohelpdesk Подскажите пожалуйста, как дописать код в правило, чтобы выскакивало диалоговое окно с вопросом сохранить копию пдф или нет.
не совсем удобно чтобы всегда перезаписывался файл.
Один из немногих каналов, которые продвигают Inventor и iLogic. Супер! Подскажите, как с помощью iLogic "экспортировать грань как..."
Ниже код, который позволяет экспортировать выделенную грань в формат 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
@@dxf-autohelpdesk это чё такое? О_О
Здравствуйте. Спасибо за видео. А как сохранить pdf файлы в другую папку? Как в коде указать путь сохранения?
Добрый день!
Вы можете имя файла и директорию самостоятельно указать в переменной PDFFileName.
Например:
PDFFileName = "c:\pdffile.pdf"
После отработки правила, в корне диска С, будет создан PDF file с названием "pdffile.pdf".
@@dxf-autohelpdesk А чтобы сохранялось в папку проект/чертежи/pdf и с именем файла чертежа?
Напишите на почту: dxfautohelp@gmail.com
Здравствуй. Подскажи пожалуйста, что это значит?
Ошибка в строке 4 : "MagBox" не объявлен. Может быть недоступен из-за своего уровня защиты.
Ошибка в строке 4 : "MagBoxStyle" не объявлен. Может быть недоступен из-за своего уровня защиты.
Вроде как то получилось. Но ещё вопрос, если можно. А можно как то сделать, если pdf файл создан, но ты ещё раз редактируешь чертёж, и заново его закрываешь и у меня ошибку:
Ошибка в строке 2 правила ExportPDF в документе Удалить!!!.idw
Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))
Я вообще не программист, но думаю, он ошибку выдаёт, т.к. pdf уже есть и он не может его заменить. Спасибо.
Думаю проблема в орфографической ошибке!
не "MagBox", а "MsgBox"
и соответсвенно не "MagBoxStyle", а "MsgBoxStyle"
@@dxf-autohelpdesk Получилось. Хотя у меня и через Mag работало, криво но работало. Спасибо большое
Добрый день. А как можно изменить имя файла сохраненного документа с новым расширением? Можно ли имя файла взять с параметра сборки?
Добрый день!
если вы пытаетесь эскортировать файл в другое расширение(например, файл ipt в step) - то нужно пользоваться транслятоми
при этом, имя экспортируемого файла, можно выбрать какое угодно, в том числе, имя файла сборки
@@dxf-autohelpdesk Dim DXFFileName = ThisDoc.PathAndFileName(False) & Parameter("P.БСК.iam.БСК") & ".DXF" - вот так прописываю. При сохранение в dxf имя файла состоит из название чертежа .dwg и моего экспортируемого параметра. Как убрать название части от чертежа? Спасибо
@@ДанилПриходько-г4р
Если я вас правильно понял, то нужно делать так:
ThisDoc.Path & "\" & Parameter("P.БСК.iam.БСК") & ".DXF"
@@dxf-autohelpdesk, помогло, спасибо