【发布时间】:2019-11-20 03:07:16
【问题描述】:
设计自动化 API - V3
我想使用 Forge 来: 上传一个pdf文件 将其附加到 dwg 文件 使用 PdfImport autocad 命令转换 pdf 保存并下载dwg
但是 伪造过程在附件过程中给我一个错误:
T:\Aces\AcesRoot\23.1\coreEngine\Exe\acdwfmarkupcore.crx 找不到它需要的 dll 或其他文件。
pdf文件上传正常并正确找到
问题似乎出在附加过程中 附件是我们的纯 api 产品之一,它手动创建 PdfDefinition 和 pdfReference
下一个问题:是否可以链接 PdfImport Autocad 命令??
提前致谢
卢克
public static void SampleAttach(string fileName, Database database, Transaction transaction)
{
DBDictionary nod = (DBDictionary)transaction.GetObject(database.NamedObjectsDictionaryId, OpenMode.ForWrite);
string defDictKey = UnderlayDefinition.GetDictionaryKey(typeof(PdfDefinition));
if (!nod.Contains(defDictKey))
{
using (DBDictionary dict = new DBDictionary())
{
nod.SetAt(defDictKey, dict);
transaction.AddNewlyCreatedDBObject(dict, true);
}
}
DBDictionary pdfDict = (DBDictionary)transaction.GetObject(nod.GetAt(defDictKey), OpenMode.ForWrite);
BlockTable bt = (BlockTable)transaction.GetObject(database.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)transaction.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
ObjectId idPdfDef;
using (PdfDefinition pdfDef = new PdfDefinition())
{
pdfDef.SourceFileName = fileName;
pdfDef.ItemName = "1";
if (pdfDef.Loaded)
{
idPdfDef = pdfDict.SetAt(string.Format(@"{0} - {1}", Path.GetFileNameWithoutExtension(fileName).ToRestrictiveName(), pdfDef.ItemName), pdfDef);
transaction.AddNewlyCreatedDBObject(pdfDef, true);
using (PdfReference pdf = new PdfReference())
{
pdf.DefinitionId = idPdfDef;
pdf.Rotation = 0;
pdf.Position = new Point3d(0, 0, 0.0);
btr.AppendEntity(pdf);
transaction.AddNewlyCreatedDBObject(pdf, true);
}
}
}
}
【问题讨论】:
标签: autodesk-forge