简体   繁体   English

使用mtext将文件名中的某些特定文本打印到dwg

[英]Print some specific text from file name to dwg using mtext

我有一个dwg文件,名称是534-W1A-R1.dwg,我想在我的dwg文件上使用MText仅打印W1A-R1

System.IO.Path.GetFileNameWithoutExtension("534-W1A-R1.dwg").Substring(fileName.IndexOf('-') + 1)

returns "W1A-R1" 返回“ W1A-R1”

Or, using Regular expressions: 或者,使用正则表达式:

Regex.Match("534-W1A-R1.dwg", @"-(.+)\.").Groups[1].Value

You can use Databse class to extract it's file name. 您可以使用Databse类提取其文件名。 Then as usual - create new MText and add to the ModelSpace BlockTableRecord . 然后照常创建新的MText并将其添加到ModelSpace BlockTableRecord

[CommandMethod("AddFileNameText")]
public static void AddFileNameText()
{
    Document acDoc = Application.DocumentManager.MdiActiveDocument;

    var db = acDoc.Database;
    using (Transaction transaction = db.TransactionManager.StartTransaction())
    {
        ObjectId idModelSpace = SymbolUtilityServices.GetBlockModelSpaceId(db);

        BlockTableRecord modelSpace =
            transaction.GetObject(idModelSpace, OpenMode.ForWrite) as
            BlockTableRecord;

        MText acMText = new MText();
        acMText.SetDatabaseDefaults();

        string strFilePath = db.Filename; //c:\534-W1A-R1.dwg
        strFilePath = 
            System.IO.Path.GetFileNameWithoutExtension(strFilePath); //534-W1A-R1

        //Do ANY text processing            
        if (strFilePath.IndexOf('-') > 0)
            strFilePath = strFilePath.Substring(
                strFilePath.IndexOf('-') + 1); //W1A-R1

        acMText.Contents = strFilePath;

        modelSpace.AppendEntity(acMText);
        transaction.AddNewlyCreatedDBObject(acMText, true);

        transaction.Commit();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM