Перейти к публикации

Обозначения деталей при переносе в новую сборку


Alexbug

Рекомендованные сообщения

Добрый день!

Стали отдавать часть деталей для изготовления на сторону. Появилась необходимость стандартизации обозначений.

Вопрос: первое изделие называется ФФФ.000010.СБ, соответственно деталям в нем присвоены обозначения типа ФФФ.000010.011.023.

Во втором изделии большинство деталей те же самые, и при создании нового проекта просто копируются в него. То есть, обозначения будут отличаться только номером изделия (ФФФ.00020, ФФФ.00030 и т.д.). Нужно каждый раз менять номера вручную, или в инвенторе можно сделать это автоматически?

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
1 час назад, Alexbug сказал:

Нужно каждый раз менять номера

НЕЛЬЗЯ!

Если дель та же самая, то и обозначение у неё должно быть то же самое.

Вы же для болтов обозначения не меняете. Или тоже в каждой сборке болты обзываете по-своему?

Ссылка на сообщение
Поделиться на других сайтах

Болты то мы закупаем массово, а детали каждый раз изготавливаем под код конкретный заказ.

Значит надо вручную:sad:

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Ветерок сказал:

НЕЛЬЗЯ!

можно и нужно, если речь про единичное изготовление подобных механизмов и устройств и системе обозначений не по ЕСКД. Чтобы путаницы при изготовлении не было, в какую сборку изготовленную деталь включить. Вернее, или так, или уж постоянно применяемым деталям присвают отвлеченное от обозначения устройств обозначения и выделяют их в унифицированные детали. Может даже с созданием СТП. Но придется как раз обеспечить как-то исключение вышеуказанной путаницы при сборке.

Просто если есть такая проблема, то почему бы и не использовать заимствование? Чтобы обойти эту сиюминутную проблему

Изменено пользователем Bully
Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Bully сказал:

постоянно применяемым деталям присвают отвлеченное от обозначения устройств обозначения и выделяют их в унифицированные детали

Вот это правильнее.

Ссылка на сообщение
Поделиться на других сайтах

@Alexbug, покурите iLogic:

https://forums.autodesk.com/t5/inventor-customization/ilogic-rule-for-each-part-in-the-assembly-to-change-partt/td-p/3819874

Изменено пользователем frei
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Bully сказал:

Просто если есть такая проблема, то почему бы и не использовать заимствование?

Ну так при заимствовании имя все равно пишется вручную, или я туплю?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Alexbug сказал:

вручную

да ну нах.

Спойлер

1174794182_.thumb.png.fc8fe2d05c7194455938ee5260e1401f.png

Скрипт берет обозначение сборки и фигачит по нему обозначения в детали. скрипт нужно модифицировать, чтобы пропускать десятки в деталях и назначать обозначение подсборок, а также нули добавить что бы писалось 001, 002, и т.д.

Спойлер

' Берем обозначение Сборки и вписываем в детали
Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
Dim iter As Integer
iter = 1 'итерируемое обозначение
'Iterate through all of the occurrences
Dim oOccurrence As ComponentOccurrence
For Each oOccurrence In oAsmCompDef.Occurrences
'check for and skip virtual components
'(in case a virtual component trips things up)
If Not TypeOf oOccurrence.Definition Is VirtualComponentDefinition Then
iProperties.Value(oOccurrence.Name, "Project", "Part Number") = iProperties.Value("Project", "Part Number")+"."+CStr(iter) 
InventorVb.DocumentUpdate()
iter+=1
Else
End If
Next

 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Снова здравствуйте,

С нумерацией деталей я наконец-то разобрался. 

Но возник еще один вопрос:

Можно ли с помощью ILogic исправить часть обозначения детали. Например, все детали в большой сборке (с подсборками) содержат произвольное (буквы и цифры) выражение "DDDD", его надо заменить на "SSSS".  (AAA.0078.DDDD.1111.* на AAA.0078.SSSS.1111.*).

Ссылка на сообщение
Поделиться на других сайтах
В 20.04.2020 в 11:40, Alexbug сказал:

Можно ли с помощью ILogic исправить часть обозначения детали. Например, все детали в большой сборке (с подсборками) содержат произвольное (буквы и цифры) выражение "DDDD", его надо заменить на "SSSS".  (AAA.0078.DDDD.1111.* на AAA.0078.SSSS.1111.*)

ниже код, заменяет в обозначениях детали "АБВ" на "БУГОГА"

Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
'Iterate through all of the occurrences
Dim oOccurrence As ComponentOccurrence
For Each oOccurrence In oAsmCompDef.Occurrences
'check for and skip virtual components
'(in case a virtual component trips things up)
If Not TypeOf oOccurrence.Definition Is VirtualComponentDefinition Then
iProperties.Value(oOccurrence.Name, "Project", "Part Number") = Replace(iProperties.Value("Project", "Part Number"),"АБВ","БУГОГА")
InventorVb.DocumentUpdate()
iter+=1
Else
End If
Next

 

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Alexbug сказал:

Спасибо

еще рано,

В 20.04.2020 в 11:40, Alexbug сказал:

(с подсборками)

код ниже заменяет "АБВ" на "БУГОГА" в обозначении всех деталей и внутри подсборок:

Sub Main()
    Dim oDoc As Inventor.AssemblyDocument
    oDoc = ThisApplication.ActiveDocument	
    Dim oCompDef As Inventor.ComponentDefinition
    oCompDef = oDoc.ComponentDefinition
    ' Get all occurrences from component definition for Assembly document
    Dim oCompOcc As ComponentOccurrence
    For Each oCompOcc In oCompDef.Occurrences
		If Not TypeOf oCompOcc.Definition Is VirtualComponentDefinition Then
        	' Check if it's child occurrence (leaf node)
        	If oCompOcc.SubOccurrences.Count = 0 Then			
				iProperties.Value(oCompOcc.Name, "Project", "Part Number") = Replace(iProperties.Value("Project", "Part Number"),"БУГОГА","АБВ")
        	Else ' если подсборка
				iProperties.Value(oCompOcc.Name, "Project", "Part Number") = Replace(iProperties.Value("Project", "Part Number"),"БУГОГА","АБВ")
				Call processAllSubOcc(oCompOcc, iSubAssemblies) ' подсборка
        	End If
		End If
    Next  
    
End Sub

Private Sub processAllSubOcc(ByVal oCompOcc As ComponentOccurrence, ByRef iSubAssemblies As Long)

    Dim oSubCompOcc As ComponentOccurrence	
	For Each oSubCompOcc In oCompOcc.SubOccurrences
        If Not TypeOf oSubCompOcc.Definition Is VirtualComponentDefinition Then
		' Check if it's child occurrence (leaf node)		
        	If oSubCompOcc.SubOccurrences.Count = 0 Then			
				iProperties.Value(oSubCompOcc.Name, "Project", "Part Number") = Replace(iProperties.Value("Project", "Part Number"),"БУГОГА","АБВ")		
        	Else				
            	iProperties.Value(oSubCompOcc.Name, "Project", "Part Number") = Replace(iProperties.Value("Project", "Part Number"),"БУГОГА","АБВ")		
				Call processAllSubOcc(oSubCompOcc, iSubAssemblies) 'Рекурсивный вызов
			End If
		End If
    Next
End Sub

 

Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, frei сказал:

еще рано

Спасибо еще раз!

Все работает.

А Вы, случайно, не знаете нет ли где нибудь чего чего нибудь типа самоучителя - уроков по этой хрени (команды, операторы, в-общем для чайников). Продираться сквозь описания инвентора  - завал полный. Затыкаюсь на какой-то глупости, понимаю, что ответ должен быть простым, а найти не могу (наверно не там ищу:smile:)

Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, frei сказал:

код ниже заменяет "АБВ" на "БУГОГА" в обозначении всех деталей и внутри подсборок

К сожалению, я немного поторопился.

Код заменяет "АБВ" на "БУГОГА", но при этом обрезает в обозначении подсборок и деталей все значения, следующие за "БУГОГА". 

Например: было главная сборка - 100.АБВ.СБ, деталь в подсборке -  100.АБВ.020.030

                     стало: 100.БУГОГА.СБ, детали в подсборке -  100.БУГОГА.СБ

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Alexbug сказал:

я немного поторопился.

Да, я переделал свое старое правило, которое расставляло обозначения для подсборок и деталей, и для деталей назначалось обозначение сборки.

вот замена обозначения одного на другое:

Sub Main()
    Dim oDoc As Inventor.AssemblyDocument
    oDoc = ThisApplication.ActiveDocument	
    Dim oCompDef As Inventor.ComponentDefinition
    oCompDef = oDoc.ComponentDefinition
    ' Get all occurrences from component definition for Assembly document
    Dim oCompOcc As ComponentOccurrence
    For Each oCompOcc In oCompDef.Occurrences
		If Not TypeOf oCompOcc.Definition Is VirtualComponentDefinition Then
        	' Check if it's child occurrence (leaf node)
        	If oCompOcc.SubOccurrences.Count = 0 Then			
				iProperties.Value(oCompOcc.Name, "Project", "Part Number")=Replace(iProperties.Value(oCompOcc.Name, "Project", "Part Number"),"БУГОГА","АБВ")
        	Else ' если подсборка
				iProperties.Value(oCompOcc.Name, "Project", "Part Number")=Replace(iProperties.Value(oCompOcc.Name, "Project", "Part Number"),"БУГОГА","АБВ")        
				Call processAllSubOcc(oCompOcc, iSubAssemblies) ' подсборка
        	End If
		End If
    Next  
    
End Sub

Private Sub processAllSubOcc(ByVal oCompOcc As ComponentOccurrence, ByRef iSubAssemblies As Long)

    Dim oSubCompOcc As ComponentOccurrence	
	For Each oSubCompOcc In oCompOcc.SubOccurrences
        If Not TypeOf oSubCompOcc.Definition Is VirtualComponentDefinition Then
		' Check if it's child occurrence (leaf node)		
        	If oSubCompOcc.SubOccurrences.Count = 0 Then			
				iProperties.Value(oSubCompOcc.Name, "Project", "Part Number")=Replace(iProperties.Value(oSubCompOcc.Name, "Project", "Part Number"),"БУГОГА","АБВ")		
        	Else				
            	iProperties.Value(oSubCompOcc.Name, "Project", "Part Number")=Replace(iProperties.Value(oSubCompOcc.Name, "Project", "Part Number"),"БУГОГА","АБВ")		
				Call processAllSubOcc(oSubCompOcc, iSubAssemblies) 'Рекурсивный вызов
			End If
		End If
    Next
End Sub

 

6 часов назад, Alexbug сказал:

типа самоучителя - уроков по этой хрени (команды, операторы, в-общем для чайников). Продираться сквозь описания инвентора  - завал полный. Затыкаюсь на какой-то глупости, понимаю, что ответ должен быть простым, а найти не могу (наверно не там ищу:smile:)

мб начать с VBA для чайников-это самому языку.

Kamming_S.__VBA_dlya_quotchajnikovquot.j

более предметно по Ilogic поспрашайте/поищите на cad.ru  - там спецы были, может чего посоветуют почитать/посмотреть.

Ссылка на сообщение
Поделиться на других сайтах

По API в Инвенторе была книжка. https://ru.wikibooks.org/wiki/Autodesk_Inventor_API._Первые_шаги Хотя, это может показаться сложнее чем iLogic

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • alek77
      Да, спасибо, я уже из интереса ее нашел. Еще раз повторю, чтобы не выхватить, сам я такими методами указния размеров не пользуюсь, это самая вредная практика из всех, что встречал. В свое время имел много проблем в автокаде, корректируя чужие чертежи. Но там и отртогональные линии под углом в 0,001 градуса были в норме, и миллион линий одна поверх другой, и незамкнутые отрезки и много всего, от чего волосы дыбом. В солиде, думал, не столкнусь с таким, наивный. Поэтому искал и нашел макрос который косяки размеров подсвечивает. Он вполне рабочий, но не стабильный. В чем причина не разбирался, так как со своей задачей он справляется. Причем отрабатывает и галочки, и замену текста в размере. Хорошо, что @malvi.dp нашел время и что-то корректирует, спасибо отдельное ему за это. Макрос достаточно полезный при работе с чужими документами. И если удастся сохранить все начальные функции этого макроса против изощренных методов вредительства - будет офигенно.
    • Kelny
      Если этой ссылки достаточно для отображения материала и материал уже есть в обозначенной модели, то возможно подойдёт TabBuilder: https://help.solidworks.com/2023/russian/SolidWorks/SWHelp_List.html?id=e68c1877b4fa431483f8c751bd9fcc78&_gl=1*lby1j3*_up*MQ..*_ga*NTEyNjA5NDQ3LjE3MTQxMTU3MzA.*_ga_XQJPQWHZHH*MTcxNDExNTcyOS4xLjEuMTcxNDExNTczNy4wLjAuMA..#Pg0   В старых версиях при написанни ссылок такого радо в некоторых случаях можно было не писать имя файла, а достаточно было вместо имени файла модели оставить ПРОБЕЛ.SLDPRT и имя после этого подставлялось само. Пробовать надо.   Так же можете глянуть макрос по изменению свойств файла (методы и функции там устаревшие, но возможно даже будет работать и можно поковыряться в коде): https://kelnyproject.ucoz.ru/load/6-1-0-8 по програмированию так же есть справка (версию в ссылке поменяйте на свою, что бы справка была актуальна для вашей версии): https://help.solidworks.com/SearchEx.aspx?query=get custom property&version=2010&lang=english,enu&prod=api
    • gudstartup
      только перед обновлением обязательно выполните  все что написано в руководстве и касается сохранения состояния станка и чпу. и обязательно сделайте образ диска и помните что слишком новые версии могут не заработать на вашем чпу относительно безопасно ставить только сервиспаки
    • NordCom
      Большое спасибо! Через это меню удалось зайти в меню. 95148->MOD
    • Danil89nur
      Доброе время суток. Столкнулся с проблемой на новой работе. Много деталей у который в свойствах отсутствует раздел "Материал" и приходится каждый раз вручную заходить туда, создавать раздел и выбирать там ""SW-Material@Name.SLDPRT". Возможно кто-то знает, либо сможет помочь с написанием простенького макроса, при нажатии на который в свойствах детали будет создаваться необходимый раздел и в нем сразу написан выбранный материал (желательно, чтоб там было указано сразу наименование материала, а не формула для его получения ""SW-Material@Name.SLDPRT"). Пытался самостоятельно через ChatGPT, но так как в програмировании я 0, то ничего не получилось)
    • Bot
      Коллеги, Благодарю вас за интерес к проекту электронной энциклопедии в области инженерного программного обеспечения PLMpedia, который более 15 лет развивался группой компаний ЛЕДАС. Представленный ниже скриншот передаёт содержание и структуру базы данных энциклопедии, накопленной за эти годы: именно такую начальную страницу, можно было до сегодняшнего дня увидеть, придя по адресу https://plmpedia.ru/ В последние несколько лет ЛЕДАС особенно интенсивно и результативно вкладывает все ресурсы в развитие своего основного бизнеса: см. ниже «О компании ЛЕДАС». Сегодня я с некоторым сожалением констатирую, что у компании ЛЕДАС более нет возможности отвлекать ресурсы своих сотрудников на некоммерческий (фактически волонтерский) проект PLMpedia. Вся база данных ресурса может быть безвозмездно передана любому юридическому или физическому лицу с единственным условием: наш преемник должен будет публично объявить о состоявшейся передаче и взятии на себя [...] View the full article
    • gudstartup
      @NordCom  у вас наверное это так происходит читайте этот раздел itnc_530.pdf
    • fenics555
      интересный индус. А нового то чего?
    • gudstartup
      откудова качаете мне интересно?
    • ДОБРЯК
      Совсем забыл про собственные вектора       собственный тон частота           0.013                        1   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00       собственный тон частота       15910.75                         2   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2  -7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00        
×
×
  • Создать...