老师你好!
我想问一下:
MVBA在类模块中实现ILocateCommandEvents接口,在Start事件中选择了一条线,在Accept事件中,如何将其偏移(平面),偏移的位置在沿线的一侧,以及如何修改线的线型?
(microStation v8i)
Element有Move方法可以实现偏移。如果要保留原来的的元素的话,可以先Clone(克隆,也是现有的一个方法)一份。
直接对Element下的LineStyle属性赋值就能实现修改线型。
我指定了一个move的点,为啥还是不能move,只能在选中对象的位置复制一条线呢?
注意,MVBA中给出的数值默认是主单位,您给的5000,5000是否太大了?元素距离您太远了。请执行Fit View动作查看一下
我尝试了一下,改了数值的大小还是不能实现偏移;还有就是fit view我不知道该怎么用;是不是我代码有问题呢?
不知您看过我的《MicroStation VBA视频教程》没有?其中有例子实现多重元素缩放复制,其中就有Move方法的调用如下:
Private Sub ILocateCommandEvents_Accept(ByVal el As Element, Point As Point3d, ByVal View As View) Dim newEl As Element Dim offsetPnt As Point3d, orgPnt As Point3d Dim dScale As Double With frmScaleCopy offsetPnt = Point3dFromXYZ(CDbl(.txtOffsetX.Text), CDbl(.txtOffsetY.Text), CDbl(.txtOffsetZ.Text)) dScale = CDbl(.txtScale.Text) For i = 1 To CInt(.txtCopies.Text) Set newEl = ActiveModelReference.CopyElement(el) newEl.Move offsetPnt orgPnt.X = (newEl.Range.High.X + newEl.Range.Low.X) / 2# orgPnt.Y = (newEl.Range.High.Y + newEl.Range.Low.Y) / 2# orgPnt.Z = (newEl.Range.High.Z + newEl.Range.Low.Z) / 2# newEl.ScaleAll orgPnt, dScale, dScale, dScale newEl.Redraw Set el = newEl.Clone Next End With End Sub
视频下载链接如下:
https://communities.bentley.com/communities/other_communities/chinafirst/w/chinawiki/28888/microstation-vba
源代码下载也能在上述页面找到。
Fit View工具就是如下图所示的视图边框上的一个图标按钮。中文可能翻译成“全景视图”