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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 117 След.
Поиск объектов по выделенному компоненту (в месте наведения мыши)
[QUOTE]Cap пишет:
можно ли при выделении компонента в месте наведения мыши распознать ближайший к курсору объект, используя VBA. [/QUOTE]Я думаю можно (см. скрин). Т.е. вы запускаете (через VBA) для пользователя процедуру выбора объектов и по событию отслеживаете, что проплывает под курсором мыши...
Event.png (32.36 КБ)
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Пробовал я сравнивать грани, но не получается.[/QUOTE]Попробуй сравнить через свойство Face.TransientKey() As Long. Это идентификатор (ID) объекта, у каждой грани он свой. Он временный, его не стоит хранить, а получать в момент использования...
Типа: [I]If Face1.TransientKey = Face2.TransientKey Then[/I] 'Это одна и та же грань
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
как найти атрибут в сборке Assembly1 на прокси грани.[/QUOTE]Здесь непонятки, обычно по атрибуту ищут объект. Здесь какие-то проблемы? Потом нужно сравнить грани, полученные из зависимости и найденную по атрибуту, типа это одна и та же грань?
Как то так... Непонятно, что за задача решается, поэтому трудно подсказывать...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Александр2018 пишет:
Если делать несколько шаблонов то ивентор постоянно выдает предупреждение о том что системные слои отличаются[/QUOTE]У меня 10 шаблонов, надо просто изменения в шаблонах сохранить в библиотеке стилей...
Ну а правила простые:[CODE]ActiveSheet.TitleBlock = "My Title Block"
ActiveSheet.Border = "My Border"[/CODE]Первая строка штамп, вторая рамка... ток свои названия подставте)
Изменено: Алексей Романов - 22.08.2018 12:39:48
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Александр2018 пишет:
3 После выбора формата я его подтираю от предустановленных рамок и заполняю своими.[/QUOTE]Не совсем понятно... В шаблонах нельзя сразу нужную рамку вставить? Рамку можно нарисовать таким образом, что она может автоматом подстраиваться при изменении формата чертежа...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Хотя таким образом я так понимаю мы получаем прокси грань, которая относится к зависимости и находится в сборке.[/QUOTE]По ней через NativeObject вы получаете саму грань модели и можете искать здесь атрибуты, независимо от глубины вложенности модели в подсборки. У меня так...))
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Кстати, как раз деталь почему то не могу посмотреть OFace1.Parent.Parent.Name[/QUOTE]В данном случае возвращается ComponentDefinition модели, здесь надо OFace1.Parent.Parent.Document смотреть.
Вот [URL=http://ru.wikibooks.nym.su/wiki/Autodesk_Inventor_API._%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B5_%D1%88%D0%B0%D0%B3%D0%B8]ссылка[/URL], там есть статья про Сборки...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Про EntityOne и EntityTwo знаю, но только в качестве определения типа объекта.[/QUOTE]Все правильно, в сборке нет геометрии деталей, а только ссылки на нее в виде proxy объектов. EntityOne возвращает ссылку в виде FaceProxy, а там свои атрибуты, NativeObject возвращает собственно саму грань детали, с которой можно работать как в среде детали...
Сейчас под рукой нет ссылки, завтра дам на интересную статью про сборки с т.з. API. Очень хорошо и доступно написано, вам многое станет понятно...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Т.е. Если было бы свойство Faces непосредственно у oCompOcc1.Constraints.Item("Совмещение:1"), то да можно наверно было бы таким образом выделить принадлежность грани или ребра к зависимости.[/QUOTE]А оно там есть, только это EntityOne и EntityTwo, попробуй так:[CODE]Dim oCon As MateConstraint
   Set oCon = oCompOcc1.Constraints.Item("Совмещение:1")
   Dim oFace1, oFace2 As Face
   
   Set oFace1 = oCon.EntityOne.NativeObject
   Dim oAtt As Inventor.Attribute
   If oFace1.AttributeSets.Count > 0 Then
       For Each oAtt In oFace1.AttributeSets(1)
           If oAtt.value = "Красный" Then
               MsgBox "Face1:  " & oAtt.value
           End If
       Next
   End If
   
   Set oFace2 = oCon.EntityTwo.NativeObject
   If oFace2.AttributeSets.Count > 0 Then
       For Each oAtt In oFace2.AttributeSets(1)
           If oAtt.value = "Красный" Then
               MsgBox "Face2:  " & oAtt.value
           End If
       Next
   End If[/CODE]Т.е. зависимость на красной грани1 или на грани2, может это чем поможет...
UPD^  OFace1.Parent даст тело, на котором эта грань, а выше сама деталь...
Изменено: Алексей Романов - 15.08.2018 13:01:13
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Cap пишет:
Раскрашенные грани нахожу, а как определить что у цилиндра 1 на красной грани есть зависимость у детали, а на желтой нет?[/QUOTE]Дело в том, что грани ничего не знают о наложенных на них зависимостях. А вот в зависимостях есть ссылки на грани (как прокси). Тогда можно получить зависимость и дальше смотреть, [CODE]Set oCon = oCompOcc1.Constraints.Item("Совмещение:1")[/CODE] какие грани там присутствуют. Как-то так...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]_aaa_ пишет:
Думаю если пойму как соеденить этот код с предыдущим, то я справлюсь с задачей и посложнее.[/QUOTE]Попробуй это:[CODE]Sub Main()
   ' Ссылка на активный документ. Полагаем, что это сборка.
    oAsmDoc = ThisDoc.Document
   ' Начинаем обход сборки
   TraverseAsm(oAsmDoc.ComponentDefinition.Occurrences)
End Sub

Private Sub TraverseAsm(oOccurrences As ComponentOccurrences)
   ' перебор списка компонентов на текущем уровне иерархии.
For Each oOcc In oOccurrences
' Площадь =  Measure.Area("Пл")

oVal = iProperties.VolumeOfComponent(oOcc.Name)
oArea = iProperties.AreaOfComponent(oOcc.Name)
oTh = Parameter(oOcc.Name, "Толщина")
Периметр = (oArea - 2 * oVal / Oth) / oTh 'с учетом отверстий
'       Площадь = oVal / Oth 'это с отверстиями, а вот как без отверстий???

aa = iProperties.Value(oOcc.Name, "Project", "Part Number")
bb = iProperties.Value(oOcc.Name, "Project", "Description")
'В Калькуляция.xlsx предварительно создается ("Лист1", "das", "=", 1)
xlsPath= "D:\Bat.xls"
i =  GoExcel.FindRow(xlsPath, "Лист1", "das", "=", "1")

GoExcel.CellValue(xlsPath, "Лист1", "A" + i.ToString) = aa
GoExcel.CellValue(xlsPath, "Лист1", "B" + i.ToString) = bb
GoExcel.CellValue(xlsPath, "Лист1", "C" + i.ToString) = Периметр
' GoExcel.CellValue(xlsPath, "Лист1", "D" + i.ToString) = Площадь
GoExcel.CellValue(xlsPath, "Лист1", "E" + i.ToString) = "2"

k = i + 1
GoExcel.CellValue(xlsPath, "Лист1", "E"+ k.ToString)= "1"
GoExcel.Save
       ' Если текущий компонент – подсборка, то вызываем эту процедуру
       ' снова с текущим компонентом в качестве параметра.
       If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
           TraverseAsm(oOcc.SubOccurrences)
       End If
   Next
End Sub[/CODE]Для обрезки пробелов есть функция Trim...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Александр2018 пишет:
как в спецификацию выполнить не метры и не количество а объем в метрах кубических[/QUOTE]Как вариант, в параметрах детали/сборки создаете свой с нужной размерностью, создаете правило iLogic [CODE]Val = iProperties.Volume[/CODE]В Параметрах процесса моделирования задаете основную величину...
Val.png (51.37 КБ)
Изменено: Алексей Романов - 31.07.2018 04:58:11
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]_aaa_ пишет:
Вторая программа экспортирует периметр и площадь эскизов, которые были предворительно созданы.[/QUOTE]Этот момент мешает объединению... А что это означает? По другому нельзя вычислить эти параметры?
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Gnedov пишет:
вопрос как создать пользовательский параметр, если его не существует в детали.[/QUOTE]Попробуй так:[CODE]Try
p = Parameter.Param("myParam")
If p.ExposedAsProperty = False Then
p.ExposedAsProperty = True
p.CustomPropertyFormat.Precision = CustomPropertyPrecisionEnum.kZeroDecimalPlacePrecision
p.CustomPropertyFormat.ShowTrailingZeros = False
p.CustomPropertyFormat.ShowUnitsString = False
End If
Catch
oCompDef = ThisDoc.Document.ComponentDefinition
p = oCompDef.Parameters.UserParameters.AddByValue("myParam", 1, UnitsTypeEnum.kMillimeterLengthUnits) ' имя параметра, значение (см), единицы
p.ExposedAsProperty = True
' и т.д.
End Try[/CODE]
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Gnedov пишет:
из внешнего правила ... пользовательский параметр[/QUOTE]Я не знаю, не работаю с внешними правилами, вместо этого использую макросы на ВБА...
Вопрос к знатокам iLogic, Размеры детали.
[QUOTE]Gnedov пишет:
Как с помощью илоджик поставить крыжик на экспорт параметра[/QUOTE]Надеюсь все понятно (d18 - имя параметра):[CODE]p = Parameter.Param("d18")
p.ExposedAsProperty = True  'крыжик на экспорт
'точность
p.CustomPropertyFormat.Precision = CustomPropertyPrecisionEnum.kZeroDecimalPlacePrecision
'замыкающие нули
p.CustomPropertyFormat.ShowTrailingZeros = False 'снять крыжик, True - поставить крыжик
'показывать единицы измерения
p.CustomPropertyFormat.ShowUnitsString = False
'Точность в знаках
'kZeroDecimalPlacePrecision - 0
'kOneDecimalPlacePrecision - 1
'kTwoDecimalPlacesPrecision - 2
'kThreeDecimalPlacesPrecision - 3[/CODE]
Синтаксис и правила записи уравнений (формул)
[QUOTE]sloter пишет:
Вот задал сразу единицы какие нужно. Абстрактный (пользовательский) параметр что бы не противоречить ед.изм. модели. Ошибку в формуле не показывает, но результат непонятный выдаёт. Не подскажите что происходит в данном случае?[/QUOTE]Ну Вы и даете! Я не думаю, что разрабы заморачивались с этимм абстрактными параметрами. АИ моделирует (ИМХО) наш реальный 3-х мерный мир. Если брать размеры, то корень из площади даст размер стороны квадрата. А что даст корень из отрезка? Я просто не могу представить саму сущность результата этого действа, это не ко мне, а к разрабам)))[QUOTE]sloter пишет:
Надо не только задавать формулу, но больше напрягать мозг как единицы измерения уравнять,[/QUOTE]Тоже не согласен, если понимать суть совершаемого действия (см. вышеизложенное), то мозг сам вам подскажет, НО нужно немного опыта, как и в любом деле)))
Синтаксис и правила записи уравнений (формул)
[QUOTE]sloter пишет:
Вычитал правило, что вроде бы надо выравнивать единицы измерения - доп. действиями приводить их к тем единицам, которые должны получаться у вычисляемого параметра.[/QUOTE]Все правильно, единицы измерения результата должны соответствовать, тем что указаны слева. Чтобы получить миллиметры, нужно извлечь корень из квадратных миллиметров, на мой взгляд здесь все логично...
Мне нравится фишка, когда АИ автоматом переводим миллиметры в сантиметры, метры и т.п.
frm1.png (5.6 КБ)
СЛЕЗЫ AUTODESK INVENTOR, Описание проблем, недоработок и что нужно сделать
[QUOTE]IvanS пишет:
Странно, но я в этом окне никогда не пользовался крестиком[/QUOTE]Аналогично, левой рукой жму Esc, она там у мну всегда греет клаву, в правой мышка))))...
Гидроцилиндры Autodesk Inventor
[QUOTE]NT_8 пишет:
Что бы можно было использовать наподобие подшипников из библиотеки.[/QUOTE]Подшипники я сделал многотельными (чтобы в чертежах подавлять штриховку шариков), так же можно поступить и с гидроцилиндрами, т.е. смоделить их многотельными с подвижным штоком и опубликовать в СС...
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 117 След.