FreeCAD не выполняет скрипт Python, как ожидалось

Я пытаюсь научиться писать скрипты на FreeCAD. По сути, я открываю консоль python и делаю то, что хочу, в графическом интерфейсе, а затем заглядываю в консоль python, чтобы узнать команды. а затем прочитайте API для этой конкретной задачи, чтобы узнать правильную форму команд Python.

Все шло хорошо, пока я не застрял в этой странной проблеме, когда программа (IE FreeCAD) не выполняет части моего кода. Например, в этом макросе я создаю три блока, а затем соединяю два вместе, и он работает просто отлично. Но в этом я создаю 3 коробки, сливаю две из них вместе, а затем пытаюсь вырезать слияние из большей коробки. и это не работает. Я даже попытался включить некоторые флаги, используя print("flag"), но он не выполняет эти команды. Если я копирую и вставляю точные команды в консоль Python и запускаю, она работает отлично!

поэтому мои предположения таковы:

  1. FreeCAD делает что-то в графическом интерфейсе, который не сообщает в консоли Python.
  2. Интерпретатор Python FreeCAD не выполняет некоторые команды, такие как print("")
  3. в FreeCAD API есть что-то, что я не правильно использую

Буду признателен, если вы поможете мне узнать:

  1. если это ошибка в FreeCAD/python или она является преднамеренной
  2. Как я могу решить эту проблему, чтобы интерпретатор Python FreeCAD запускал мой макрос / скрипт, как я ожидал?

PS Я разместил точно такой же вопрос здесь, на форуме FreeCAD.

1 ответ

ОК, я понял проблему. Вы можете увидеть правильный макрос здесь в этом Github Gist

Объяснение: в основном решение состоит в том, что когда мы хотим запустить логическую операцию над двумя существующими объектами, мы не должны менять их видимость на false (как это делают команды по умолчанию для графического интерфейса). Если мы включим эти команды, то ни одна из команд после них не будет выполнена.

Другие вопросы по тегам