天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 166|回复: 1

[每日一码] 打印AcDbLineTypeTableRecord线型定义引用的SHX文件名

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 19:39:08 | 显示全部楼层 |阅读模式
    1. static void ASDKwbTEST(void)
    2. {
    3.    AcDbDatabase* pDb = curDoc()->database();
    4.   assert(pDb);
    5.   //get line type table
    6.   AcDbLinetypeTable *pLTTable ;
    7.   acdbOpenObject(pLTTable,pDb->linetypeTableId(),AcDb::kForRead);
    8.   AcDbLinetypeTableRecord *pLTRecord = NULL ;
    9.   AcDbObjectId objLTId ;
    10.   //pLTTable->getAt(采用T("TRACKS"), objLTId) ;
    11.   pLTTable->getAt(采用T("ZIGZAG"), objLTId) ;
    12.   pLTTable->close();
    13.   Acad::ErrorStatus es = acdbOpenObject((AcDbObject *&)pLTRecord, objLTId, AcDb::kForRead) ;
    14.   if(es != Acad::eOk)
    15.   {
    16.    acutPrintf(采用T("ZIGZAG linetype not loaded"));
    17.         return;
    18.   }
    19.            //iterate through the linetype
    20.   int dashes = pLTRecord->numDashes();
    21.   for(int c = 0; c < dashes; c++)
    22.   {
    23.    int shpnum = pLTRecord->shapeNumberAt(c) ;
    24.    if(shpnum != 0)
    25.    {
    26.    AcDbTextStyleTableRecord *pTSRecord = NULL ;
    27.    AcDbObjectId objTSId = pLTRecord->shapeStyleAt(c);
    28.    pLTRecord->close();
    29.    acdbOpenObject((AcDbObject*&)pTSRecord,objTSId,AcDb::kForRead);
    30.    assert(pTSRecord);
    31.    const ACHAR *pName ;
    32.    Acad::ErrorStatus es = pTSRecord->fileName(pName);
    33.    pTSRecord->close();
    34.    acutPrintf(采用T("\nName of shape file = %s"),pName);
    35.    }
    36.   }
    37. }
    复制代码

     

     

     

     

    [每日一码] 打印AcDbLineTypeTableRecord线型定义引用的SHX文件名
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
     楼主| 发表于 2024-3-14 19:39:31 | 显示全部楼层
    Here is a VB.NET example:
    1. <CommandMethod("getShpName")> 采用
    2.     Public Sub GetShapeName()
    3.         Dim LtypeNames As New ArrayList()
    4.         Dim TextStyleNames As New ArrayList()
    5.         Dim db As Database = HostApplicationServices.WorkingDatabase()
    6.         Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
    7.         Dim tm As Transaction = db.TransactionManager.StartTransaction()
    8.         Try
    9.             Dim lineTypTbl As LinetypeTable = tm.GetObject(db.LinetypeTableId, OpenMode.ForRead)
    10.             Dim ltTblRec As LinetypeTableRecord
    11.             Dim txtStyleTblRec As TextStyleTableRecord
    12.             ltTblRec = tm.GetObject(lineTypTbl("ZigZag"), OpenMode.ForRead)
    13.             'iterate through the linetype
    14.             Dim intDashes As Integer = ltTblRec.NumDashes
    15.             Dim i As Integer
    16.             Dim iShpNum As Integer
    17.             For i = 0 To intDashes - 1
    18.                 iShpNum = ltTblRec.ShapeNumberAt(i)
    19.                 If iShpNum <> 0 Then
    20.                     Dim txtStylTblRecObjId As ObjectId = ltTblRec.ShapeStyleAt(i)
    21.                     txtStyleTblRec = tm.GetObject(txtStylTblRecObjId, OpenMode.ForRead)
    22.                     ed.WriteMessage("Name of  " & txtStyleTblRec.FileName.ToString() & vbCrLf)
    23.                 End If
    24.             Next
    25.             tm.Commit()
    26.         Catch ex As System.Exception
    27.             ed.WriteMessage(ex.ToString())
    28.         Finally
    29.             tm.Dispose()
    30.         End Try
    31.     End Sub
    复制代码

     

     

     

     

    [每日一码] 打印AcDbLineTypeTableRecord线型定义引用的SHX文件名
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 13:22 , Processed in 0.190907 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表