Как я могу изменить данные свойства файла в файле .slddrw?

Существует меню, в котором можно получить доступ к свойствам и изменить их, например, кто нарисовал файл чертежа, когда он был создан и т. д. Вы также можете добавить дополнительные свойства.

Подробнее о свойствах файла:

http://help.solidworks.com/2018/english/SolidWorks/sldworks/t_properties_fundamentals.htm

Моя цель — изменить значение свойства с помощью python в существующем файле с помощью макроса или чего-то подобного.

Я знаю, что для этих вещей лучшим выбором будет VB/C#, но я знаком только с python. Я читал о макросах python для SolidWorks, но эта информация была для меня непонятна :/.


person Community    schedule 09.01.2019    source источник
comment
Файлы SolidWorks имеют собственный формат. Реверс-инжиниринг формата, вероятно, будет трудным, независимо от того, решите ли вы сделать это на Python, VB или C#.   -  person BoarGules    schedule 09.01.2019
comment
Я не хочу менять формат, просто изменю некоторые вещи в файле   -  person    schedule 09.01.2019
comment
Я не говорил, что вы хотите изменить формат. Но вы хотите прочитать файл, изменить материал и сохранить его обратно. Это означает, что ваша программа должна понимать формат. Чтобы добиться этого, вам придется перепроектировать формат, потому что он является проприетарным. Это может быть очень трудно.   -  person BoarGules    schedule 09.01.2019
comment
Да, это было бы сложно, но с VB/C# это легко, потому что для этого есть API, я не знаю, что с python.   -  person    schedule 09.01.2019


Ответы (1)


Чтобы вызвать SolidWorks COM API из Python, вам потребуется Python-эквивалент этого VB:

Dim swApp As Object
Set swApp = CreateObject("SldWorks.Application")

К счастью, это не сложно. Установите win32com, который можно загрузить с https://github.com/mhammond/pywin32. Затем вы можете вызвать SolidWorks COM API из Python следующим образом:

from win32com.client import Dispatch
swApp=Dispatch("SldWorks.Application")

После этого вы можете делать из Python с swApp все, что API позволит вам делать в VB. Переменная swApp — это тонкая оболочка Python вокруг COM-объекта, которая будет вести себя точно так же, как в VB. Я вижу, что есть руководство по API примерно на 250 страниц. Вам, конечно, придется транспонировать примеры VB в синтаксис Python.

person BoarGules    schedule 09.01.2019