创建后未显示图案填充
您好,我是这个论坛的新手,在使用traceboundaries()创建图案填充时遇到了一个问题
创建图案填充并将“图案填充样式”设置为“外部”后,我不会出现。将显示边界多段线,但只有在单击任何
对象并更改其属性时,才会显示图案填充
一旦舱口出现,一切正常
文档doc=Application.DocumentManager.MdiActiveDocument
数据库db=doc.Database
编辑器ed=doc.Editor
PromptPointResult ppr=ed.GetPoint(“\n选择内部点:”)
如果(ppr.Status!=PromptStatus.OK)返回
DBObjectCollection objs=ed.TraceBoundary(ppr.Value,true)
如果(objs.Count==0)返回
使用(Transaction tr=doc.TransactionManager.StartTransaction())
{
块表acBlkTbl
acBlkTbl=tr.GetObject(db.BlockTableId,OpenMode.ForRead)作为BlockTable
//打开块表记录模型空间进行写入
BlockTableRecord acBlkTblRec
acBlkTblRec=tr.GetObject(acBlkTbl,OpenMode.ForWrite)作为BlockTableRecord
使用(Hatch hat=new Hatch())
{
acBlkTblRec.AppendEntity(hat)
tr.addNewlyCreatedBobObject(帽子,真)
帽子。HatchStyle=HatchStyl.Outer
hat.SetDatabaseDefaults()
hat.SetHatchPattern(HatchPatternType.预定义为“实心”)
帽子。关联=真
foreach(objs中的dbobjectobj)
{
曲线c=obj作为曲线
如果(c!=null)
{
ObjectId curveId=acBlkTblRec.AppendEntity(c)
tr.addNewlyCreatedBobObject(c,true)
hat.AppendLoop(HatchLoopTypes.Default,新ObjectdCollection(){curveId})
}
}
hat.EvaluateHatch(真)
var ds=new DrawStream()
}
tr.Commit()
}
任何帮助都将不胜感激,因为我已经为此工作了几天
编辑kdub:code=csharp的代码标签已添加。
**** Hidden Message ***** 您好,
您的代码适合我(在2019年进行了测试)
您可以尝试添加:
帽子。降级打开()
紧接着:
hat.SetHatchPattern(HatchPatternType.PreDefined,“SOLID”)
我试过你的建议,但不幸的是仍然没有结果。它可以是一些图形卡设置或类似的东西
是使用hatchstyle创建的图案填充。外面的<不管怎样,谢谢你的帮助。 我已经记录了我的行为,以显示它是如何工作的。
它上传到vimeo上的这个链接 https://vimeo.com/user100893766/review/348539021/7a97fe464e
我也附上了视频。
所以我在我想要孵化的区域内选择一个点。舱口不显示。但是,如果我快速单击围绕舱口两次的折线,它就会突然出现。
在创建舱口并提交事务后,您是否尝试过Editor.Regen()? 你好,阿图,
是的,我已经尝试过把Editor.Regen()放在所有东西之后。我还尝试过在命令提示符中手动输入regen。仍然没有显示舱口。
我现在一整天都在想它是如何为Gile工作的,但不为我工作。
直到我双击外部折线,然后按ESC,舱口才会显示。
事实上,即使我更改附加到最外面的舱口类型,舱口也会显示,但不会显示正确的舱口样式(外部)。
以这种方式创建的舱口也只有在我在折线上按两次或对其做一些事情时才能获得所需的舱口样式。
我知道,这真的很奇怪。 我把代码放到一个方法里,用VS2019 Win10编译。
AC 2020 Vanilla中的网络加载调试版本。
在模型空间中运行,
按预期工作。
更改为图纸空间布局,切换到模型空间。
按预期工作。
在这两种情况下,我都运行了两次该命令..一次选择外层空间,一次选择内层空间。
draw stream
类是做什么的??
我确实注释掉了。
DrawStream 类是无用的。这只是一个c / p错误。通过您的图像,我可以看到HatchStyle未设置为外部。如果将填充样式设置为外部,我希望最小的圆圈不会被剖面线。
由于我通过按钮单击来调用我的方法,而您使用命令调用它,因此是否有区别?
我第一次选择外圈..它填满了外层
第二次我选择了内圈......它填满了内圈。
我没有检查选择内部是否填充了两者。
我还没有完全阅读文档,所以我不确定结果是否正确,但它在当时是有道理的;而且我现在太脑死亡了(GMT +12),无法进一步调查。
已添加:
也许您可以从命令行执行一些手动 Hatches 来测试预期的默认行为。
页:
[1]
2