ADN Open CIS
Сообщество программистов Autodesk в СНГ

30/11/2020

Design Automation: Разные способы запустить код правил iLogic (Inventor)

Я уже рассказывал о том, как задать в Activity запуск правила iLogic в статье (см. перевод на нашем сайте)

Вы можете также прописать код, который будет запускаться (или предоставлять ссылку к нему) в WorkItem-е или в файле в AppBundle-е

Вот так Вы можете это сделать:

1) В Activity:

Код - JavaScript: [Выделить]
  1. {
  2.   "commandLine": [
  3.     "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(settings[script].path)\""
  4.   ],
  5.   "parameters": {
  6.     "inputFile": {
  7.       "verb": "get",
  8.       "localName": "inputFile.ipt"
  9.     },
  10.     "outputFile": {
  11.       "verb": "put",
  12.       "localName": "outputFile.ipt"
  13.     }
  14.   },
  15.   "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
  16.   "engine": "Autodesk.Inventor+24",
  17.   "appbundles": [],
  18.   "settings": {
  19.     "script": {
  20.       "value": "Trace.WriteLine(\"Text from iLogicVb file\")"
  21.     }
  22.   },
  23.   "description": "Running iLogic Rule",
  24.   "version": 1
  25. }

2) В WorkItem-е:

Activity следует задать следующим образом:

Код - JavaScript: [Выделить]
  1. {
  2.   "commandLine": [
  3.     "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(args[iLogicVb].path)\""
  4.   ],
  5.   "parameters": {
  6.     "inputFile": {
  7.       "verb": "get",
  8.       "localName": "inputFile.ipt"
  9.     },
  10.     "iLogicVb": {
  11.       "verb": "get",
  12.       "localName": "input.iLogicVb"
  13.     },
  14.     "outputFile": {
  15.       "verb": "put",
  16.       "localName": "outputFile.ipt"
  17.     }
  18.   },
  19.   "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
  20.   "engine": "Autodesk.Inventor+24",
  21.   "appbundles": [],
  22.   "description": "Running iLogic Rule",
  23.   "version": 1
  24. }

WorkItem:

Код - JavaScript: [Выделить]
  1. {
  2.   "inputFile": {
  3.     "url": "<url to file>"
  4.   },
  5.   "iLogicVb": {
  6.     "url": "data:application/text,Trace.WriteLine(\"Text from iLogicVb file\")\n"
  7.   },
  8.   "outputFile": {
  9.     "url": "<url to file>"
  10.   }
  11. }

3) В WorkItem-е, код по ссылке.

Activity задается так же, как в предыдущем пункте 2.

WorkItem:

Код - JavaScript: [Выделить]
  1. {
  2.   "inputFile": {
  3.     "url": "<url to file>"
  4.   },
  5.   "iLogicVb": {
  6.     "url": "<url to iLogicVb file>"
  7.   },
  8.   "outputFile": {
  9.     "url": "<url to file>"
  10.   }
  11. }

4) Код правила iLogic сохранить в AppBundle:

AppBundle:

img: https://flint-prodcms-forge.s3.amazonaws.com/prod/s3fs-public/inline-images/iLogicVb.png

Activity:

Код - JavaScript: [Выделить]
  1. {
  2.   "commandLine": [
  3.     "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(appbundles[DaSamplePlugin].path)\\DaSamplePlugin.bundle\\Contents\\input.iLogicVb\""
  4.   ],
  5.   "parameters": {
  6.     "inputFile": {
  7.       "verb": "get",
  8.       "localName": "inputFile.ipt"
  9.     },
  10.     "outputFile": {
  11.       "verb": "put",
  12.       "localName": "outputFile.ipt"
  13.     }
  14.   },
  15.   "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
  16.   "engine": "Autodesk.Inventor+24",
  17.   "appbundles": ["rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.DaSamplePlugin+prod"],
  18.   "description": "Running iLogic Rule",
  19.   "version": 1
  20. }

Примечание: Если Вы загружаете AppBundle с аргументом /al командной строки, то аргумент /s будет проигнорирован. Также в этом случае нужно обязательно указать путь к обрабатываемому файлу с помощью аргумента /i

 

Источник: https://forge.autodesk.com/blog/different-ways-run-ilogic-code

Автор перевода: Александр Игнатович
Опубликовано 30.11.2020