Design Automation: Разные способы запустить код правил iLogic (Inventor)
Я уже рассказывал о том, как задать в Activity запуск правила iLogic в статье (см. перевод на нашем сайте)
Вы можете также прописать код, который будет запускаться (или предоставлять ссылку к нему) в WorkItem-е или в файле в AppBundle-е
Вот так Вы можете это сделать:
1) В Activity:
- {
- "commandLine": [
- "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(settings[script].path)\""
- ],
- "parameters": {
- "inputFile": {
- "verb": "get",
- "localName": "inputFile.ipt"
- },
- "outputFile": {
- "verb": "put",
- "localName": "outputFile.ipt"
- }
- },
- "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
- "engine": "Autodesk.Inventor+24",
- "appbundles": [],
- "settings": {
- "script": {
- "value": "Trace.WriteLine(\"Text from iLogicVb file\")"
- }
- },
- "description": "Running iLogic Rule",
- "version": 1
- }
2) В WorkItem-е:
Activity следует задать следующим образом:
- {
- "commandLine": [
- "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(args[iLogicVb].path)\""
- ],
- "parameters": {
- "inputFile": {
- "verb": "get",
- "localName": "inputFile.ipt"
- },
- "iLogicVb": {
- "verb": "get",
- "localName": "input.iLogicVb"
- },
- "outputFile": {
- "verb": "put",
- "localName": "outputFile.ipt"
- }
- },
- "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
- "engine": "Autodesk.Inventor+24",
- "appbundles": [],
- "description": "Running iLogic Rule",
- "version": 1
- }
WorkItem:
- {
- "inputFile": {
- "url": "<url to file>"
- },
- "iLogicVb": {
- "url": "data:application/text,Trace.WriteLine(\"Text from iLogicVb file\")\n"
- },
- "outputFile": {
- "url": "<url to file>"
- }
- }
3) В WorkItem-е, код по ссылке.
Activity задается так же, как в предыдущем пункте 2.
WorkItem:
- {
- "inputFile": {
- "url": "<url to file>"
- },
- "iLogicVb": {
- "url": "<url to iLogicVb file>"
- },
- "outputFile": {
- "url": "<url to file>"
- }
- }
4) Код правила iLogic сохранить в AppBundle:
AppBundle:
img: https://flint-prodcms-forge.s3.amazonaws.com/prod/s3fs-public/inline-images/iLogicVb.png
Activity:
- {
- "commandLine": [
- "$(engine.path)\\InventorCoreConsole.exe /i \"$(args[inputFile].path)\" /s \"$(appbundles[DaSamplePlugin].path)\\DaSamplePlugin.bundle\\Contents\\input.iLogicVb\""
- ],
- "parameters": {
- "inputFile": {
- "verb": "get",
- "localName": "inputFile.ipt"
- },
- "outputFile": {
- "verb": "put",
- "localName": "outputFile.ipt"
- }
- },
- "id": "rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.RunRule+prod",
- "engine": "Autodesk.Inventor+24",
- "appbundles": ["rGm0mO9jVSsD2yBEDk9MRtXQTwsa61y0.DaSamplePlugin+prod"],
- "description": "Running iLogic Rule",
- "version": 1
- }
Примечание: Если Вы загружаете AppBundle с аргументом /al командной строки, то аргумент /s будет проигнорирован. Также в этом случае нужно обязательно указать путь к обрабатываемому файлу с помощью аргумента /i
Источник: https://forge.autodesk.com/blog/different-ways-run-ilogic-code
Опубликовано 30.11.2020