加载行类型问题
你好!我尝试使用以下代码在Bricscad中加载特定的行类型:
OdDbLinetypeTablePtr pLTPtr =(OdDbLinetypeTablePtr)pDb-> getLinetypeTableId()。safeOpenObject(OdDb::kForWrite);
如果(!pLTPtr-> has(_ T(" DIVIDE "))
{
//此处如果不指明default.lin的完整路径我会得到一个错误
//pDb-> loadline typefile(_ T(" DIVIDE "),_ T(" default . Lin "));
//工作正常
pDb-> loadline typefile(_ T(" DIVIDE "),_ T(" C:\ \ Documents and Settings \ \ MIKE \ \ Application Data \ \ Bricsys \ \ Bricscad \ \ v 9 \ \ en _ US \ \ support \ \ default . Lin "));
}
如何在一般情况下使用loadLineTypeFile(..) ?
我试图在注册表中找到一些对我有帮助的信息,但是我没有找到关于线型文件的其他信息。
有什么想法吗?
迈克
**** Hidden Message ***** 如果您知道支持文件夹名称或它是否存储在注册表中,您可以获取它并附加文件名。为了增加错误检查,您还可以在调用函数加载线型之前验证文件是否存在。
您可以使用这个简单的函数来验证文件是否存在,然后继续使用您的函数:
#include
bool FileExists(string strFilename)
{
struct stat stFileInfo;
bool blnReturn;
int intStat;
// Attempt to get the file attributes
intStat = stat(strFilename.c_str(),&stFileInfo);
if(intStat == 0)
// We were able to get the file attributes so the file obviously exists.
{
blnReturn = true;
}
else
// We were not able to get the file attributes.
{
blnReturn = false;
}
return(blnReturn);
}
我可能会尝试使用sds_findfile 大家好!
我不确定哪种方法最快,但我会同时尝试这两种方法和另一种使用Bricscad注册表中SRCHPATH变量的方法。看起来第一价值数据正是我正在寻找的支持途径。
非常感谢您!
迈克 它位于搜索路径中,您可以在promt
(findfile“default.lin”)
中使用lisp进行尝试 sds_findfile()非常完美!
谢谢!
迈克 我用这个,当我知道。它位于支持的路径之一。-
以防他们侵入该函数:acdbLoadLineTypeFile
if (acdbLoadLineTypeFile(_T("OCULTA1"), _T("civilcad.lin"), acdbHostApplicationServices()->workingDatabase()) == Acad::eOk)
acutPrintf(_T("\nLinetype loaded. \n"));
else
acutPrintf(_T("\nLinetype not loaded. \n"));
页:
[1]