[英]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.