#autodesk-forge #autodesk
#autodesk-forge #autodesk
Вопрос:
Я создал пакетное приложение в Autodesk Forge с использованием autolisp, этот скрипт выполняет поиск в dwg полилиний, которые включают макеты, и экспортирует каждую из них в отдельный файл PDF. Однако скрипт возвращает мне ошибку во время выполнения, эта ошибка говорит о том, что команда экспорта или построения была отклонена. Есть ли какой-либо правильный способ сделать это в Forge или какой-либо другой команде, с помощью которой я могу экспортировать эти макеты в PDF?
Ниже приведен используемый скрипт…
(setq sel (ssget "x"
(list (cons 0 "LWPOLYLINE")
(cons 70 1)
(cons 8 "Defpoints")
)
)
)
(if (/= sel nil)
(setq count (sslength sel))
(setq count 0)
)
(setq i 0)
(setq difx nil)
(setq pts (list 0))
(setvar "demandload" 3)
(repeat count
(setq el (ssname sel i))
(setq en (entget el))
(setq coords nil)
(foreach item en
(setq tmp (car item))
(if (= tmp 10)
(setq coords (append coords (list (cdr item))))
)
)
(setq pt1 (nth 0 coords))
(setq pt2 (nth 1 coords))
(setq pt3 (nth 2 coords))
(setq difx (distance pt1 pt3))
(setq label (ssget "_CP"
coords
(list (cons 0 "TEXT") (cons 8 "Border Text"))
)
)
(if (/= label nil)
(setq title (cdr (assoc 1 (entget (ssname label 0)))))
(setq title "NO_NAME")
)
(command "-EXPORT"
"p"
"w"
pt1
pt3
"n"
(strcat title ".pdf")
)
(setq i ( i 1))
)
(princ)
Комментарии:
1. Работало ли это в AccCoreconsole? Возможно, мне понадобится тестовый dwg
2. Да, @MadhukarMoogala отлично работает на accoreconsole и консоли в autocad, если вы хотите, я поделюсь файлом dwg для тестирования.
3. Пожалуйста, поделитесь справкой forge [точка] [на] autodesk [точка] com
4. Спасибо @MadhukarMoogala, я отправляю этот вопрос за помощью в forge
5. Я не получал, можете ли вы указать номер билета zendesk.
Ответ №1:
Рисунок — это студенческий рисунок, просто дружеское предложение, его не следует использовать в производственных средах. Ваш скрипт работает как шарм, я просто внес некоторые изменения. Мы ожидаем кучу PDF-файлов, поэтому нам нужно переместить их в какой-нибудь каталог, служба DA может заархивировать этот каталог для вас.
- Вам нужно создать каталог в вашем скрипте
- переместите файлы PDF в новый созданный каталог.
- название каталога должно быть синхронизировано с параметром
LocalName
ofResult
в спецификации Activity
Код на Лиспе:
(defun c:Run7241 ()
(setq sel (ssget "x"
(list (cons 0 "LWPOLYLINE")
(cons 70 1)
(cons 8 "Defpoints")
)
)
)
(if (/= sel nil)
(setq count (sslength sel))
(setq count 0)
)
(setq i 0)
(setq difx nil)
(setq pts (list 0))
;(setvar "demandload" 3)
(repeat count
(setq el (ssname sel i))
(setq en (entget el))
(setq coords nil)
(foreach item en
(setq tmp (car item))
(if (= tmp 10)
(setq coords (append coords (list (cdr item))))
)
)
(setq pt1 (nth 0 coords))
(setq pt2 (nth 1 coords))
(setq pt3 (nth 2 coords))
(setq difx (distance pt1 pt3))
(setq label (ssget "_CP"
coords
(list (cons 0 "TEXT") (cons 8 "Border Text"))
)
)
(if (/= label nil)
(setq title (cdr (assoc 1 (entget (ssname label 0)))))
(setq title "NO_NAME")
)
(command "-EXPORT"
"p"
"w"
pt1
pt3
"n"
(strcat title ".pdf")
)
(setq i ( i 1))
)
(princ)
)
(defun c:MovepdfToOutPuts ()
;get current directory
(setq curDir (getvar "dwgprefix"))
;make new directory outputs, should be in sync with LocalName in activity
(setq outputs "outputs")
(vl-mkdir outputs)
;move each file to output diretory
(foreach x (vl-directory-files curDir "*.pdf")
(setq file (strcat curDir "/" x))
(setq newFile (strcat curDir "/" outputs "/" x))
(princ newFile)
(vl-file-rename file newFile)
)
)
Спецификация действия:
{
"commandLine": [
"$(engine.path)\accoreconsole.exe /i $(args[HostDwg].path) /s $(settings[script].path)"
],
"parameters": {
"HostDwg": {
"verb": "get",
"required": true,
"localName": "test.dwg"
},
"LispFile": {
"verb": "get",
"required": true,
"localName": "7241.lsp"
},
"Result": {
"zip": true,
"verb": "put",
"required": true,
"localName": "outputs"
}
},
"id": "mx.plotlisplayouts prod",
"engine": "Autodesk.AutoCAD 24",
"settings": {
"script": {
"value": "(load "7241.lsp")nRun7241nMovepdfToOutPutsn"
}
},
"version": 1
}
Спецификация WorkItem:
{
"activityId": "mx.plotlisplayouts prod",
"arguments": {
"HostDwg": {
"url": "https://xyz/open-v.dwg",
"verb": "get"
},
"LispFile": {
"url": "https://xyz/7241.lsp",
"verb": "get"
},
"Result": {
"url": "https://xyz?region=US",
"verb": "put"
}
}
}
Комментарии:
1. Привет @Madhukar Moogala. Я следовал всем инструкциям, которые вы мне дали, и получил ошибку при обработке сценария. Я предпринял следующие шаги: создайте действие с данными, которые вы мне предоставили; Сделайте запрос на создание рабочего элемента с вашими инструкциями; Файлы хранятся на нашем сервере, а конечные точки настроены правильно, так что я получаю пустой zip-файл. Ошибка заключается в ‘[09/11/2020 13:22:51] ; ошибка: неверно сформированный список при вводе ‘ Если вы можете помочь мне с этим вопросом, я буду чрезвычайно благодарен. Спасибо.