API автоматизации проектирования: мой файл поврежден, но все указывает на успех
Я работал с API автоматизации проектирования, чтобы запустить несколько простых сценариев для некоторых файлов чертежей, но мой выходной файл всегда поврежден, и я не уверен, почему.
Я запускаю следующий скрипт, чтобы добавить некоторые данные к чертежу в MTEXT
; Some setup of variables
;
; Get the co-ords of the bottom right corner
(setq x-coord (car (getvar 'extmax)))
(setq y-coord (cadr (getvar 'extmin)))
; Move the coords away from the drawing a bit
(setq y-coord (- y-coord 5))
; Create multi-line text at bottom right in a 200 x 100 box
-mtext (list x-coord y-coord) h 2 (list (+ x-coord 200) (- y-coord 100)) - - MED data - -
Project: Project X
End User: TestCorp
Tag No: P1234567
Version: 1
Created: 29/09/16
Modified: 29/09/16
(command "_save" "result.dwg")
; end
Этот сценарий хорошо работает, когда я запускаю его в локальной версии autoCAD, но когда я запускаю его в API автоматизации проектирования, файл результатов представляет собой небольшой неразрывный беспорядок!
Я делаю деятельность со следующими деталями
{
"HostApplication":"",
"RequiredEngineVersion":"20.1",
"Parameters":{
"InputParameters": [
{
"Name":"HostDwg",
"LocalFileName":"$(HostDwg)"
}
],
"OutputParameters":[
{
"Name":"Result",
"LocalFileName":"result.dwg"
}
]
},
"Instruction":{
"CommandLineParameters":null,
"Script":"; Some setup of variables\n;\n; Get the co-ords of the bottom right corner\n(setq x-coord (car (getvar 'extmax)))\n(setq y-coord (cadr (getvar 'extmin)))\n; Move the coords away from the drawing a bit\n(setq y-coord (- y-coord 5))\n; Create multi-line text at bottom right in a 200 x 100 box\n-mtext (list x-coord y-coord) h 2 (list (+ x-coord 200) (- y-coord 100)) - - MED data - - \nProject: Project X\nEnd User: TestCorp\nTag No: P1234567\nVersion: 1\nCreated: 29\/09\/16\nModified: 29\/09\/16\n\n(command \"_save\" \"result.dwg\")\n; end"
},
"Version":1,
"Id":"TagMtextDataAndSave"
}
Когда я запускаю это действие в API автоматизации проектирования, я получаю следующий ответ
ActivityId => 'TagMtextDataAndSave'
Arguments => object(stdClass) {
InputArguments => [
(int) 0 => object(stdClass) {
Resource => 'https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXXXXXX'
Name => 'HostDwg'
Headers => []
ResourceKind => null
StorageProvider => 'Generic'
HttpVerb => null
}
]
OutputArguments => [
(int) 0 => object(stdClass) {
Resource => 'https://developer.api.autodesk.com/oss/v2/buckets/my-persistent-bucket/objects/result.dwg'
Name => 'Result'
Headers => [
(int) 0 => object(stdClass) {
Name => 'Authorization'
Value => 'Bearer XXXXXXXXXXXXXXXXX'
}
]
ResourceKind => null
StorageProvider => 'Generic'
HttpVerb => 'PUT'
}
]
}
Status => 'Succeeded'
StatusDetails => object(stdClass) {
Report => ''
}
AvailabilityZone => null
TimeQueued => '2016-10-13T11:49:40.151Z'
TimeInputTransferStarted => '2016-10-13T11:49:40.085Z'
TimeScriptStarted => '2016-10-13T11:49:42.085Z'
TimeScriptEnded => '2016-10-13T11:49:43.35Z'
TimeOutputTransferEnded => '2016-10-13T11:49:43.741Z'
BytesTranferredIn => (int) 59840
BytesTranferredOut => (int) 22702
Timestamp => '2016-10-13T11:49:43.741Z'
Id => '694fa87557db46a985a63f6e40c1e681'
Вот где все становится запутанным. Как вы можете видеть выше, отчет имеет Status => 'Succeeded'
но если мы посмотрим на байты вход / выход мы видим
BytesTranferredIn => (int) 59840
BytesTranferredOut => (int) 22702
И когда я пытаюсь загрузить и открыть файл, autoCAD говорит, что он поврежден, что неудивительно, поскольку многие из них отсутствуют. Я загрузил отчет из API и снова не вижу причин, почему это не удается!
[10/13/2016 11:49:40] Starting work item 694fa87557db46a985a63f6e40c1e681
[10/13/2016 11:49:40] Start download phase.
[10/13/2016 11:49:40] Start downloading file https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXXXXX
[10/13/2016 11:49:41] Redirected, download from https://doc-0s-10-docs.googleusercontent.com/docs/securesc/ha0roXXXXXXXXXXXXXXXXXXXXmbp1/XXXXXXXXXXXXXXXXXXXX/1476352800000/02518323576368124429/*/0B7GM1RWKWZHGdnhMSmRrSDhodDQ?e=download instead.
[10/13/2016 11:49:42] Time spent on downloading from redirected url is 0.1718424 seconds.
[10/13/2016 11:49:42] End downloading file https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXXXXX. 59840 bytes have been written to C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\test.dwg.
[10/13/2016 11:49:42] End download phase.
[10/13/2016 11:49:42] Start preparing script and command line parameters.
[10/13/2016 11:49:42] Start script content.
[10/13/2016 11:49:42] ; Some setup of variables
;
; Get the co-ords of the bottom right corner
(setq x-coord (car (getvar 'extmax)))
(setq y-coord (cadr (getvar 'extmin)))
; Move the coords away from the drawing a bit
(setq y-coord (- y-coord 5))
; Create multi-line text at bottom right in a 200 x 100 box
-mtext (list x-coord y-coord) h 2 (list (+ x-coord 200) (- y-coord 100)) - - MED data - -
Project: Project X
End User: TestCorp
Tag No: P1234567
Version: 1
Created: 29/09/16
Modified: 29/09/16
(command "_save" "result.dwg")
; end
[10/13/2016 11:49:42] End script content.
[10/13/2016 11:49:42] Command line: /i "C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\test.dwg" /s "C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\script.scr"
[10/13/2016 11:49:42] End preparing script and command line parameters.
[10/13/2016 11:49:42] Start script phase.
[10/13/2016 11:49:42] ### Command line arguments: /isolate job_694fa87557db46a985a63f6e40c1e681 "C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\userdata" /exe "C:\Aces\AcesRoot\20.1\coreEngine\Exe\accoreconsole.exe" /i "C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\test.dwg" /s "C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\script.scr".
[10/13/2016 11:49:42] HostApp = C:\Aces\AcesRoot\20.1\coreEngine\Exe\sandboxer.exe.
[10/13/2016 11:49:42] Start AutoCAD Core application output.
[10/13/2016 11:49:42] Redirect stdout (file: C:\Users\ACESWO~1\AppData\Local\Temp\accc40643).
[10/13/2016 11:49:42] Isolating to userId=job_694fa87557db46a985a63f6e40c1e681, userDataFolder=C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\userdata.
[10/13/2016 11:49:42] Launching sandbox process: [C:\Aces\AcesRoot\20.1\coreEngine\Exe\accoreconsole.exe /i C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\test.dwg /s C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\script.scr /isolate job_694fa87557db46a985a63f6e40c1e681 C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\userdata]
[10/13/2016 11:49:42] Setting TMP to [C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\userdata\temp]
[10/13/2016 11:49:42] Redirect stdout (file: C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\userdata\temp\accc24922).
[10/13/2016 11:49:42] AutoCAD Core Engine Console - Copyright 2015 Autodesk, Inc. All rights reserved. (M.49.Z.1)
[10/13/2016 11:49:42] Running at low integrity.
[10/13/2016 11:49:42] Substituting [simplex.shx] for [G415L_A3.SHX].
[10/13/2016 11:49:42] Regenerating model.
[10/13/2016 11:49:42] Command:
[10/13/2016 11:49:42] Command:
[10/13/2016 11:49:42] Command:
[10/13/2016 11:49:42] Command: (setq x-coord (car (getvar 'extmax)))
[10/13/2016 11:49:42] 50.2149
[10/13/2016 11:49:42] Command: (setq y-coord (cadr (getvar 'extmin)))
[10/13/2016 11:49:42] 7.46976
[10/13/2016 11:49:42] Command: (setq y-coord (- y-coord 5))
[10/13/2016 11:49:42] 2.46976
[10/13/2016 11:49:43] Command: -mtext
[10/13/2016 11:49:43] Current text style: "Standard" Text height: 0.2000 Annotative: No
[10/13/2016 11:49:43] Specify first corner: (list x-coord y-coord) (50.2149 2.46976)
[10/13/2016 11:49:43] Specify opposite corner or [Height/Justify/Line spacing/Rotation/Style/Width/Columns]: h
[10/13/2016 11:49:43] Specify height <0.2000>: 2
[10/13/2016 11:49:43] Specify opposite corner or [Height/Justify/Line spacing/Rotation/Style/Width/Columns]: (list (+ x-coord 200) (- y-coord 100)) (250.215 -97.5302)
[10/13/2016 11:49:43] MText: - - MED data - -
[10/13/2016 11:49:43] MText: Project: Project X
[10/13/2016 11:49:43] MText: End User: TestCorp
[10/13/2016 11:49:43] MText: Tag No: P1234567
[10/13/2016 11:49:43] MText: Version: 1
[10/13/2016 11:49:43] MText: Created: 29/09/16
[10/13/2016 11:49:43] MText: Modified: 29/09/16
[10/13/2016 11:49:43] MText:
[10/13/2016 11:49:43] Command: (command "_save" "result.dwg")
[10/13/2016 11:49:43] _save Save drawing as <C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\test.dwg>: result.dwg
[10/13/2016 11:49:43] Command: nil
[10/13/2016 11:49:43] Command: _quit
[10/13/2016 11:49:43] End AutoCAD Core Console output
[10/13/2016 11:49:43] End script phase.
[10/13/2016 11:49:43] Start upload phase.
[10/13/2016 11:49:43] Uploading C:\Aces\Jobs\694fa87557db46a985a63f6e40c1e681\result.dwg to https://developer.api.autodesk.com/oss/v2/buckets/my-persistent-bucket/objects/result.dwg.
[10/13/2016 11:49:43] End upload phase.
[10/13/2016 11:49:43] Job finished with result Succeeded
Я понятия не имею, что вызывает эти проблемы, когда все, кажется, указывает на успех. Любая помощь будет отличной.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
======= Update =======
Спасибо всем за ваши предложения, я был вне офиса в течение нескольких дней, поэтому не было возможности проверить ваши идеи.
В выходные я думал, что могу запустить autoCad 2017, но я проверил это утро и наступил 2016 год. Я попытался снова запустить сценарий, используя в качестве теста движок 21.0, но результат был почти таким же!
Я разрешил общий доступ к директории g-drive, откуда я беру файл, и я также загрузил файл results.dwg и последний отчет для вас, ребята, чтобы посмотреть.
Вы можете найти их здесь
Я уверен, что что-то глупо мне не хватает
2 ответа
Это краткое изложение того, что я обсуждал с Кевом. просто для справки в будущем.
Рекомендуется проверять рабочий процесс автоматизации проектирования с помощью простых сценариев. Вот коллекция Postman, которая может помочь: getpostman.com/collections/e7db377746740e9fa35c, чтобы использовать ее, вам необходимо определить соответствующие параметры коллекции.
В случае с Кевом, результат отрисовки от автоматизации проектирования не был проблематичным, проблема заключалась в том, что Кев закодировал чертежи для загрузки в ведро Forge. Вот что пошло не так, кодирование / декодирование повредило файл.
Какую версию AutoCAD вы используете, чтобы открыть получившийся чертеж? Вы используете версию 20.1 движка, которая соответствует AutoCAD 2016. Команда save выводит файл в формате по умолчанию для этой версии 2013 года. Возможно ли использовать версию до AutoCAD 2013 для чтения результатов?
Кстати, вы можете использовать команду SAVEAS, чтобы указать версию DWG, которую вы хотите вывести.