如何创建一个简单的 BlockInsert 夹具?
我开始这个线程是为了不复活任何数量的休眠线程。我读了很多,但我仍然需要推动才能正确,尤其是当用户取消插入过程时。如果有人有一个将块(对象或文件名,此时无关紧要)传递给夹具块的插入函数的简明示例,我将不胜感激。
语言无关紧要,只要它是. NET版本。C#、C++或VB都可以。如果需要,我会转换它。
**** Hidden Message ***** 嗨,
这是一个极简插入块夹具。测试命令要求块表中已经有一个名为“BlockTest”的块
使用Autodesk.AutoCAD.DatabaseServices
使用Autodesk.AutoCAD.EditorInput
使用Autodesk.AutoCAD.Geometry
使用Autodesk.AutoCAD.Runtime
使用系统
使用AcAp=Autodesk.AutoCAD.ApplicationServices.Application
[程序集:CommandClass(typeof(InsertBlockJigSample.Commands))]
名称空间InsertBlockJigSample
{
公共类命令
{
[命令方法(“测试”)]
公共无效测试()
{
var doc=AcAp.DocumentManager.MdiActiveDocument
var db=doc.Database
var-ed=doc.Editor
使用(Transaction tr=db.TransactionManager.StartTransaction())
{
var bt=(BlockTable)tr.GetObject(db.BlockTableId,OpenMode.ForRead)
如果(!bt.Has(“BlockTest”)
{
AcAp。ShowAlertDialog(“未找到块‘BlockTest’)
返回
}
使用(var br=new BlockReference(Point3d.Origin,bt[“BlockTest”)
{
br.TransformBy(ed.CurrentUserCoordinateSystem)
var-jig=new BlockJig(br,“\n插入点:”)
var结果=ed.Drag(jig)
如果(result.Status==PromptStatus.OK)
{
var curSpace=(BlockTableRecord)tr.GetObject(db.CurrentSpaceId,OpenMode.ForWrite)
curSpace.AppendEntity(br)
tr.addNewlyCreatedBobObject(br,true)
}
}
tr.Commit()
}
}
}
公共类BlockJig:EntityJig
{
保护点3D位置
受保护的BlockReference BlockReference
受保护的字符串消息
公共BlockJig(BlockReference.br,字符串消息)
:基本(br)
{
如果(br==null)
抛出新的ArgumentNullException(“br”)
blockReference=br
位置=br.位置
这个。消息=消息
}
保护覆盖采样器状态采样器(JigPrompts和prompts)
{
var.jppo=新的JigPromptPointOptions(消息)
jppo。UserInputControls=UserInputContracts.Accept3dCoordinates
var-ppr=prompts.AcquirePoint(jppo)
if(位置距离(ppr值)
返回SamplerStatus.NoChange
位置=ppr.值
返回SamplerStatus.OK
}
保护覆盖布尔更新()
{
块引用。位置=位置
返回true
}
}
}
翻译错误代码(429):请求 QPS 超过限制。 翻译错误代码(429):请求 QPS 超过限制。
页:
[1]