Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
Свойства Normal у него нет.
О да, со сплайнами все сложно :) Есть плоские сплайны (IsPlanar == true), у них можно вызвать GetPlane. Вот там и нормаль.
И для меня важно, что по этой плоскости и ее нормали уже будет строиться Region (CreateFromCurves). Так как у одной штриховки петли-сплайны получаются с разными нормалями, то они между собой не склеиваются и не вычитаются и я построить полный регион с дырками и островками не могу. Ну то есть не мог. Уже выкрутился.
2
Логично было бы, чтоб зеркалился сплайн, как все остальные объекты. А он остается тот же самый даже если сдвинуть плоскость в сторону (просто перемещается). Для себя уже решил эту проблему - мне в любом случае нужны регионы. Преобразую в Region и он прекрасно зеркалит нормаль.
Вообще-то Spline - это 3D-объект (в отличии от Polyline и Region). Что ты понимаешь под его нормалью? Свойства Normal у него нет.
3
Логично было бы, чтоб зеркалился сплайн, как все остальные объекты. А он остается тот же самый даже если сдвинуть плоскость в сторону (просто перемещается). Для себя уже решил эту проблему - мне в любом случае нужны регионы. Преобразую в Region и он прекрасно зеркалит нормаль.
4
Трансформация Mirroring через plane почему-то не меняет нормаль. Хотя должна бы...
Думаешь должна? Если этот сплайн находится в этой плоскости, то отзеркаливание ничего не делает. Из спортивного интереса можешь попробовать метод ReverseCurve.
5
Указанный код работает только в плоскости XY. Требуется назначить нормаль для линии и полилинии, а полилинию еще сдвинуть на plane.PointOnPlane.
У сплайнов направление нормали может получиться противоположным к plane.Normal. Как исправить - я пока не придумал. Трансформация Mirroring через plane почему-то не меняет нормаль. Хотя должна бы...
6
Если переименовать деталь, когда сборка открыта, то тогда её заменить не выйдет, а если переименовать деталь подсборки, до открытия основной сборки, то тогда при открытии основной сборки не получится программно обойти эту подсборку ...
Вы смешиваете два процесса!
В цикле обхода дерева Вы получаете путь к подсборке! Если эта подсборка требует замены, то вы сохраняете ее по новому адресу! При этом в ней остаются старые ссылки. Нужно по условию вызвать саб(функцию) - эта операция должна быть рекурсивна ко всем элементам, входящим в эту подсборку(т.е. к деталям и другим подсборкам), который выполнит сохранение и замену имен в этой подсборке к входящим элементам. Если не требует - переходим к следующему элементу цикла
7
Обход подсборок выполняется через вызов подпрограммы, по условию.
Вот пример подобного цикла, думаю разберешься.  ;)
https://adn-cis.org/forum/index.php?topic=9999.msg44879#msg44879

Спасибо, помогли в обходе подсборок)
Переименовывание только не вышло
Если переименовать деталь, когда сборка открыта, то тогда её заменить не выйдет, а если переименовать деталь подсборки, до открытия основной сборки, то тогда при открытии основной сборки не получится программно обойти эту подсборку ... 
8
Ну и ещё одна ремарка, опять скорее не про программирование, а про использование инвертора. Если у вас узел типовой и не меняется, в чем необходимость тащить его сборку  из проекта в проект и копировать по сто раз? Можно же сделать отдельный проект-библиотеку с типовыми узлами, подключать его к проектам и использовать.

Соглашусь
Но не, для данной сборки, так как это параметрическая сборка с изменяемой геометрией
9
AutoCAD .NET API / Re: Miror и Blockreference
« Последний ответ от Валерий Ивлев 04-04-2024, 15:06:17 »
Большое спасибо за ответы!
По результату есть два приемлемых пути решения:
1 Использовать в блоке "Размер" (в этом случае изменения будут динамически отображаться) и динамиечские параметры отражения.
2 Отказаться от динамических параметров, а вместо размера использовать атрибут с полем внутри для отображения значения (в этом случае изменения увидим только после обновления поля в атрибуте).
10
AutoCAD .NET API / Re: Miror и Blockreference
« Последний ответ от Александр Ривилис 31-03-2024, 17:51:02 »
Может у старейшин есть какие-либо мысли как это решить?
Фактически тебе придется создать новый блок (BlockTableRecord) на основе существующего, в котором будут правильно отзеркаленые размеры и тексты. Не думаю что это лучше и проще, чем использовать динамический параметр отражения.
Страницы: [1] 2 3 ... 10