Помогите написать макрос для компас

Автор 567517@mail.ru, 18.08.26, 14:16:00

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Ellem

Добрый день.

Подскажите, а в поставке КОМПАС-3D идёт же приложение КОМПАС-Макро.
Не проще ли просто запустить данное приложение, поставить на запись, выполнить все необходимые действия, как вы их выполняете в повседневной работе, после чего сохранить.
Или я глупость говорю и так это не сработает?

алексst

Цитата: Греков О от 21.08.26, 10:30:58567517@mail.ru, как то нехорошо вы вопросы задаете.
Хозяйка, дай воды попить а то так есть хочется что переночевать негде.(народное)
567517@mail.ru вам бы свою голову напрячь надо.
Ваш ответ вызвал у меня новые вопросы.
Отвечать на них не надо.
1. А зачем голову напрягать? Назначение переменной - это стандартная команда языка. Можно сказать, базовая. Странно её не знать.
2. Предположим, что Автор не знает эту команду. И задал вопрос о ней здесь. Почему здесь? Ведь можно было набрать тот же вопрос (тот же комплект знаков по трудоемкости) в поисковике и получить ответ через несколько секунд. Почему Автор не пошёл по пути автоматизации и компьютеризации, а задал вопрос людям, которые будут отвечать ему "вручную"?


Я это о чём? О том, что в данном случае даже голову напрягать не надо. Просто прочитать, но Автор хочет общения с людьми, а не искусственным интеллектом.

567517@mail.ru

#22
Я не знаю команды назначения переменной в компас-макросе.
Я вообще недавно столкнулся с этим языком программирования (а нейросетям - не доверяю).
Поэтому и спросил.

Student2025

Цитата: 567517@mail.ru от 22.08.26, 01:44:31недавно столкнулся с этим языком программирования
и
Цитата: 567517@mail.ru от 22.08.26, 01:44:31нейросетям - не доверяю



567517@mail.ru

#24
Ясно.
Подскажите тогда - что в коде обозначают вот эти цифры 3750.0 и 2250.0 ?
В моей нарисованной схеме их нет.  Тогда что они обозначают ?

#  Создай графический объект "Отрезок"
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
views_and_layers_manager = kompas_document_2d.ViewsAndLayersManager
views = views_and_layers_manager.Views
view = views.ActiveView
drawing_container = kompas_api7_module.IDrawingContainer(view)
line_segments = drawing_container.LineSegments
line_segment = line_segments.Add()
line_segment.Style = kompas6_constants.ksCSNormal
line_segment.X1 = 2250.0
line_segment.Y1 = 200.0
line_segment.X2 = 3750.0
line_segment.Y2 = 200.0
line_segment.Update()
drawing_object_8 = line_segment

#  Создай графический объект "Отрезок"
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
views_and_layers_manager = kompas_document_2d.ViewsAndLayersManager
views = views_and_layers_manager.Views
view = views.ActiveView
drawing_container = kompas_api7_module.IDrawingContainer(view)
line_segments = drawing_container.LineSegments
line_segment = line_segments.Add()
line_segment.Style = kompas6_constants.ksCSNormal
line_segment.X1 = 3750.0
line_segment.Y1 = 200.0
line_segment.X2 = 3750.0
line_segment.Y2 = 2200.0
line_segment.Update()
drawing_object_9 = line_segment

И еще непонятной момент:
А где в коде ширина двери 1500.0 ?
Я вот хочу назначить на нее переменную b1, но не вижу куда подставлять эту переменную.
(При этом на самой модели я замерил -  ширина двери равна как раз 1500)


Student2025

Попробуйте идти "в лоб", ищем в хелпе X1 (что то многовато результатов) ок, берем выше стоящий объект Add() (тоже что то многовато результатов) ок, берем еще выше стоящий объект LineSegments - ура!

567517@mail.ru

Цитата: Student2025 от 23.08.26, 23:09:17Попробуйте идти "в лоб", ищем в хелпе X1 (что то многовато результатов) ок, берем выше стоящий объект Add() (тоже что то многовато результатов) ок, берем еще выше стоящий объект LineSegments - ура!
Хелп - это где ?

567517@mail.ru

Где этот help ?
Есть ли какой-то самоучитель по макросам в компасе ? 
Или может сайт, посвященный этому ?

Валерий Изранов

C:\Program Files\ASCON\KOMPAS-3D v20\SDK
Здесь находятся все help.
Но редко кто долетает даже до середины реки.

567517@mail.ru


Student2025

Цитата: Валерий Изранов от 26.08.26, 03:26:28Но редко кто долетает даже до середины реки.

Это потому что в коде мало комментарий. Не поленился и добавил их затем создал ИИ ассистента и загрузил в него - при каждом вопросе он выводит наближайший пример. Примеры стянуты еще с форума - хм, надо продумать сортировку как "верное решение". Былобы хорошо н форуме создать такой статус для кода: "Помечен как решение"- что бы легче сортировать.
Все недоимки наростают как снежный ком.