xxxtttxxx 发表于 2008-5-26 22:56:00

两个难题,请明总进来指导一下吧!

本帖最后由 作者 于 2008-5-28 23:28:32 编辑 <br /><br /> <p></p><p>1、 SelectionSet.SelectOnScreen typeArray, dataArray 语句在运行过程中,能不能忘命令栏发送命令?</p><p>也就是用户开始选择对象,但是还没有选择完成的过程中,我希望在命令栏中发送" f ",实现栏选的功能.</p><p></p><p></p><p>2、 有一个带属性的块,属性文字显示为黄色,图层为0,如何修改这个块的属性文字的颜色和图层?</p><p>我发现通过blockref找到block,然后修改block中的所有对象,并不能修改blockref显示的属性文字的颜色和图层。</p><p>应该如何修改呢?</p><p></p><p></p>

sailorcwx 发表于 2008-5-27 00:32:00

<p>1.可以实现</p><p>2.不是不能修改,而是修改了没有显示出来,需要update或者regen</p>

xxxtttxxx 发表于 2008-5-27 20:09:00

<p>1. 请问如何实现?</p><p></p><p>2.修改完以后自动regen了,但是没有用。</p><p>双击属性看看属性文字的属性,仍然没有变化。</p><p>其实如果把这个属性块打碎,已经是修改过的了,但是不打碎,颜色和图层都没有变化。</p>

xxxtttxxx 发表于 2008-5-27 20:23:00

本帖最后由 作者 于 2008-5-28 23:08:14 编辑 <br /><br /> <p>不知道明总有没有遇到过类似问题呢?</p><p>请教。。。。</p>

xxxtttxxx 发表于 2008-5-28 23:29:00

如果明总都没有遇到过这两个问题,那我就死心了。

mccad 发表于 2008-5-29 11:38:00

<p>1.直接输入f后,就可以栏选了,与普通的选择对象是一样的操作。</p><p>2.属性块和属性块参照中,属性部分是在插入属性块后单独生成的,所以它们的特性在被单独修改过后,已经不能继承原属性块中的特性了。</p>

sailorcwx 发表于 2008-5-29 11:48:00

Sub test()<br/>Dim objBlockRef As AcadBlockReference<br/>Dim varPoint As Variant<br/>ThisDrawing.Utility.GetEntity objBlockRef, varPoint<br/>Dim att As Variant<br/>att = objBlockRef.GetAttributes<br/>att(0).color = 1<br/>End Sub<br/>Sub test1()<br/>On Error Resume Next<br/>Dim filtertype(0) As Integer<br/>Dim filterdata(0) As Variant<br/>filtertype(0) = 0<br/>filterdata(0) = "LINE"<br/>Dim sset As AcadSelectionSet<br/>Set sset = ThisDrawing.SelectionSets.Item("test")<br/>sset.Delete<br/>Set sset = ThisDrawing.SelectionSets.Add("test")<br/>sset.SelectOnScreen filtertype, filterdata<br/>End Sub<br/>

sailorcwx 发表于 2008-5-29 11:51:00

<p></p><p></p>

xxxtttxxx 发表于 2008-5-29 18:10:00

本帖最后由 作者 于 2008-5-29 18:11:46 编辑 <br /><br /> <p>感谢明总和sailorcwx兄弟!</p><p></p><p></p><p>其实第一个问题我希望是程序“自动”会在cad的“选择对象”的提示后面加入f和回车,</p><p>sset.SelectOnScreen filtertype, filterdata</p><p>xxxx'一段代码能够sendcommand (“f”&amp; vbcrlf)</p><p>这个看来希望不大,算了,还是手动输入f吧。</p><p></p><p></p><p>属性块中的颜色看来是直接对属性修改的。</p><p></p><p></p><p>再次感谢!</p><p>不知道sailorcwx兄用什么软件做的gif?</p><p>&nbsp;</p>

mccad 发表于 2008-5-29 19:41:00

那就用SelectByPolygon 方法,其中有acSelectionSetFence 模式,即是你想要的栏选方式。可惜点坐标不是手工选的,而是直接提供数组给它的。但也可以这样,先用画直线模拟选择过程,并把点的坐标用于该选择方法做为点数据。
页: [1] 2
查看完整版本: 两个难题,请明总进来指导一下吧!