Создание детали используя только api 7

Автор Chipchilinka_1, 28.01.24, 17:20:51

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

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

Chipchilinka_1

Есть ли возможность создать 3d деталь используя только api 7?Если есть может кто поделится кодом


Chipchilinka_1

Цитата: Nipal от 28.01.24, 18:16:26Поиск по форуму.
Я искал , не получилось найти именно на api 7 полностью


Chipchilinka_1

Цитата: Nipal от 28.01.24, 18:25:20https://forum.ascon.ru/index.php?topic=25251.msg183201#msg183201
Ааа, забыл уточнить на питоне примерчик нужен,а то че то в другом языке разбираться будет тяжко(на делфи чет не понятно))

MrBarry

Цитата: Chipchilinka_1 от 28.01.24, 18:47:36Ааа, забыл уточнить на питоне примерчик нужен,а то че то в другом языке разбираться будет тяжко(на делфи чет не понятно))
Врятли кто будет переписывать пример на другой ЯП просто ради ответа на форуме. Если не найдёте на Python, то потратьте немного усилий и таки разберите код на Delphi. Благо, названия всех методов у Kompas API совершенно идентичны на всех языках, а Дельфи не сложный для понимания язык.

К тому же, как сказано в теме "Обсуждение правил раздела":
Цитата: Вячеслав Никонов от 05.06.18, 17:31:496. Вопросы относящиеся к конкретному языку программирования пишите в соответствующем подразделе. Общие вопросы - в общем разделе. Отвечать на вопросы  по конкретному языку программирования можно примерами на других языках программирования, особенно если у вас уже есть работающий код по проблеме участника, задавшего вопрос, - это не будет считаться оффтопом, хорошему программисту достаточно алгоритма.

Teywl Wind

Цитата: Chipchilinka_1 от 28.01.24, 18:47:36Ааа, забыл уточнить на питоне примерчик нужен,а то че то в другом языке разбираться будет тяжко(на делфи чет не понятно))

Приветствую. Программа уважаемого Slaviation делает скрипт на API 7.
Вот ссылка на тему с PyKompasMacro.

П.С. уточню, что это касается конкретно построения детали. Другое не проверял.

Chipchilinka_1

Цитата: MrBarry от 29.01.24, 08:08:37Врятли кто будет переписывать пример на другой ЯП просто ради ответа на форуме. Если не найдёте на Python, то потратьте немного усилий и таки разберите код на Delphi. Благо, названия всех методов у Kompas API совершенно идентичны на всех языках, а Дельфи не сложный для понимания язык.

К тому же, как сказано в теме "Обсуждение правил раздела":
И там используются интерфейсы api 5,а мне нужно только api7

Chipchilinka_1

Цитата: Teywl Wind от 29.01.24, 08:28:42Приветствую. Программа уважаемого Slaviation делает скрипт на API 7.
Вот ссылка на тему с PyKompasMacro.

П.С. уточню, что это касается конкретно построения детали. Другое не проверял.
Ну у него исходный код не открытый (

MrBarry

Цитата: Chipchilinka_1 от 29.01.24, 10:08:48И там используются интерфейсы api 5,а мне нужно только api7
Остаётся только одно - самому изучать SDK. Насколько я помню, работа с 3D как раз лучше идёт через API7, так что должно получиться

Chipchilinka_1

Цитата: MrBarry от 29.01.24, 10:21:01Остаётся только одно - самому изучать SDK. Насколько я помню, работа с 3D как раз лучше идёт через API7, так что должно получиться
В том и дело что я изучал но не получилось, поэтому и задал вопрос на форуме

lavgirb

Цитата: Chipchilinka_1 от 29.01.24, 10:23:11В том и дело что я изучал но не получилось
А что не получилось?
Если приведете свой участок кода, тогда всем и будет понятно, что пообсуждать.

Chipchilinka_1

Цитата: lavgirb от 29.01.24, 10:27:24А что не получилось?
Если приведете свой участок кода, тогда всем и будет понятно, что пообсуждать.
Мне бы просто хотя бы войти в режим редактирования эскиза, без api5 не получается ,поэтому и задал вопрос
from win32com.client import Dispatch, gencache
import pythoncom
import LDefin2D, LDefin3D


kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants

kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))

kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)

iPart7 = kompas_document_3d.TopPart

model_container = kompas_api7_module.IModelContainer(iPart7)
sketchs = model_container.Sketchs
sketch = sketchs.Add()

Nipal

Цитата: Chipchilinka_1 от 29.01.24, 10:32:04Мне бы просто хотя бы войти в режим редактирования эскиза, без api5 не получается ,поэтому и задал вопрос
Редактирование и создание эскиза, разные вещи.

Chipchilinka_1

Цитата: Nipal от 29.01.24, 10:33:13Редактирование и создание эскиза, разные вещи.
Ну я выше скинул код а дальше как не понимаю

Nipal

pSketch.BeginEdit;
ArcByPoint(0,0,11,0,11,0,-11,0,1);
LineSeg(0,11,0,-11,3);
pSketch.EndEdit;
pSketch.Hidden:=True;
pSketch.Update;

Chipchilinka_1

Цитата: Nipal от 29.01.24, 10:39:03pSketch.BeginEdit;
ArcByPoint(0,0,11,0,11,0,-11,0,1);
LineSeg(0,11,0,-11,3);
pSketch.EndEdit;
pSketch.Hidden:=True;
pSketch.Update;
Так а как выбрать плоскость то какую то?

Nipal

Plane:=pPart7.DefaultObject[o3d_planeXOY];
if Plane<>nil then pSketch.Plane:=Plane;

Chipchilinka_1

Цитата: Nipal от 29.01.24, 10:50:55Plane:=pPart7.DefaultObject[o3d_planeXOY];
if Plane<>nil then pSketch.Plane:=Plane;
А чтобы допустим построить отрезок как получить интерфейс отрезков если нужно drawingcontainer, а он в свою очередь требует iview а в эскизе нет вида

Nipal