怎样使用c#获取或者修改天正多行文字?
目前可以通过dynamic的办法修改天正单行文字,但是修改天正多行文字的办法一直没有找到,请问论坛里的老师怎样修改天正多行文字?smartplot 发表于 2024-7-21 09:16
请问可以获取天正单行文字的内容吗?
问题已经解决,天正多行文字也是用这行代码。我没有获取成功是因为 ...
namespace JoinBoxAcad.天正;
public class 天正例子
{
[DllImport("tch_kernal.arx", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "?SetText@TDbSymbElevation@@QEAAXPEB_W@Z")]
static extern void TDbSymbSetText(IntPtr tchElev, string txtHigth);
// 天正文字修改
public static void Tz_text()
{
var dm = Acap.DocumentManager;
var doc = dm.MdiActiveDocument;
var db = doc.Database;
var ed = doc.Editor;
var entRes = ed.GetEntity("选择竖向值: \n");
if (entRes.Status != PromptStatus.OK)
return;
db.Action(tr => {
var entTchElev = entRes.ObjectId.ToEntity(tr);
if (entTchElev is null)
return;
TDbSymbSetText(entTchElev.UnmanagedObject, "3.5");
entTchElev.DowngradeOpen();
entTchElev.Dispose();
});
}
[DllImport("tch_kernal.arx", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl,
EntryPoint = "?GetText1@TDbSymbMultiLeader@@QEBAPEB_WXZ")]
static extern string GetText1(IntPtr tchElev);
// 天正引线
public static void Tz_Le()
{
var doc = Acap.DocumentManager.MdiActiveDocument;
var ed = doc.Editor;
var db = doc.Database;
var entRes = ed.GetEntity("选择引出标注: \n");
if (entRes.Status != PromptStatus.OK)
return;
string? text = null;
db.Action(tr => {
var entTchElev = entRes.ObjectId.ToEntity(tr);
if (entTchElev is null)
return;
text = GetText1(entTchElev.UnmanagedObject);
entTchElev.DowngradeOpen();
entTchElev.Dispose();
});
if (text is not null)
ed.WriteMessage(text);
}
}
本帖最后由 smartplot 于 2024-7-21 11:07 编辑
hlchirs 发表于 2024-6-3 18:00
Entity ent = (Entity)tr.GetObject(per.ObjectId, OpenMode.ForRead);
dynamic dy = ent.AcadObject;
dy ...
请问可以获取天正单行文字的内容吗?
问题已经解决,天正多行文字也是用这行代码。我没有获取成功是因为新装系统号没有加载相关com组件
就是去找天正dll的接口 你有种再说一遍 发表于 2024-5-22 15:32
就是去找天正dll的接口
有代码可以参考吗? smartplot 发表于 2024-5-22 15:47
有代码可以参考吗?
去ifox群找青蛙 请问单行文字如何查询呢 Entity ent = (Entity)tr.GetObject(per.ObjectId, OpenMode.ForRead);
dynamic dy = ent.AcadObject;
dy.Text,找到了 你有种再说一遍 发表于 2024-7-22 04:26
大师,如果要改管线之类的,DLLImport咋个写呢,有不同图元汇总的写法吗 水鱼 发表于 2024-9-10 17:34
大师,如果要改管线之类的,DLLImport咋个写呢,有不同图元汇总的写法吗
需要自己找找,但是Arx签名不是很好找,而且c++是可以隐藏函数签名的.你可以进IFox群问问青蛙
页:
[1]
2