第十章 可视界面

Private Sub UserForm_Initialize()

Dim ViewCen As Point3d

Dim MyView As View

For Each MyView In ActiveDesignFile.Views

cmbViews.AddItem MyView.Index

Next

cmbViews.ListIndex = 

ViewCen = ActiveDesignFile.Views().Center

ScrX.Value = ViewCen.X

scrY.Value = ViewCen.Y

End Sub

Sub SetZoom(ZoomValue As Long, OldZoomValue As Long)

ActiveDesignFile.Views(cmbViews.Text).Zoom  + (ZoomValue - OldZoomValue) / 

ActiveDesignFile.Views(cmbViews.Text).Redraw

End Sub

Sub SetPan(XPan As Long, YPan As Long)

Dim ViewOrigin As Point3d

ViewOrigin.X = XPan

ViewOrigin.Y = YPan

ViewOrigin.Z = 

ActiveDesignFile.Views(cmbViews.Text).Center = ViewOrigin

ActiveDesignFile.Views(cmbViews.Text).Redraw

End Sub

Private Sub scrZoom_Change()

SetZoom ScrZoom.Value, ScrZoom.Tag

ScrZoom.Tag = ScrZoom.Value

End Sub

Private Sub scrZoom_Scroll()

SetZoom ScrZoom.Value, ScrZoom.Tag

ScrZoom.Tag = ScrZoom.Value

End Sub

Private Sub scrX_Change()

SetPan ScrX.Value, scrY.Value

End Sub

Private Sub scrX_Scroll()

SetPan ScrX.Value, scrY.Value

End Sub

Private Sub scrY_Change()

SetPan ScrX.Value, scrY.Value

End Sub

Private Sub scrY_Scroll()

SetPan ScrX.Value, scrY.Value

End Sub

本章回顾:

1.所有空间都有属性、方法和事件

2.访问空间的属性和方法的格式是:空间名,一个点号,属性和方法,需要时提供参数

3.程序运行时,用户与界面间的交互触发事件

4.用Show方法显示用户窗体

5.在窗口显示前,用Initialize事件设置值和增加控件

第十一章 MicroStation对象模型——对象

提供了库的对象模型,VBA中的对象浏览器最有帮助,VBA还包括其他有助于开发的工具,例如添加监视和自动列表功能

第十二章 MicroStation对象模型——枚举 Enumeration

枚举的优点:在分析代码时能更容易地看到所需参数的结果。

枚举成员名称经常以枚举名称或枚举名称的缩略版本开头。例如msdDesignFileFormatDWG 就是枚举名称“MsdDesignFileFormat”开头的。

MicroStation中所有的枚举都是以指定的三个字符“Msd”开头,所有的成员都以“msd”开头

第十四章 MicroStation对象模型——事件

对象具有方法、属性和事件。

P259

P155

第十五章 向文档中添加内容

使用冒号(:)把两行代码放到一行。将同一顶点的赋值放在一行上也增加了代码的易读性

Sub CreateLines()

Dim LinePoints1( To ) As Point3d

Dim LinePoints2( To ) As Point3d

Dim myLine1 As LineElement

Dim myLine2 As LineElement

Dim I As Long

For I =  To  Step 

LinePoints1(I).X = I ^  - I ^ : LinePoints1(I).Y = I + I ^ 

LinePoints2(I).X = I ^  - I ^ : LinePoints2(I).Y = -(I + I ^ )

Next I

Set myLine1 = CreateLineElement1(Nothing, LinePoints1)

Set myLine2 = CreateLineElement1(Nothing, LinePoints2)

ActiveModelReference.AddElement myLine1

ActiveModelReference.AddElement myLine2

End Sub

Sub CLines(ParamArray PointElems() As Variant)

If (UBound(PointElems) + ) Mod  <>  Then

MsgBox "Invaid number of point elements", vbCritical

Exit Sub

End If

If (UBound(PointElems) + ) <  Then

MsgBox "A minimum of 2 X,Y,Z points must be provided.", vbCritical

Exit Sub

End If

Dim LinePoints() As Point3d

ReDim LinePoints( To (UBound(PointElems) + ) \ ) As Point3d

Dim I As Long

Dim PointCounter As Long

Dim MyLine As LineElement

For I = LBound(PointElems) To UBound(PointElems) Step 

LinePoints(PointCounter).X = PointElems(I)

LinePoints(PointCounter).Y = PointElems(I + )

LinePoints(PointCounter).Z = PointElems(I + )

PointCounter = PointCounter + 

Next I

Set MyLine = CreateLineElement1(Nothing, LinePoints)

ActiveModelReference.AddElement MyLine

End Sub

Sub TestCLines()

CLines , , , , , , , , , , , , , , 

CLines , , , , , 

CLines , , , , , 

CLines , , , , 

CLines , , 

End Sub

建立形

Function CreatePolygon(CenterPoint As Point3d, NumOfSides As Long, Radius As Double) As ShapeElement

Dim myShape As ShapeElement

Dim ShapePoints() As Point3d

ReDim ShapePoints( To NumOfSides - ) As Point3d

Dim PointIndex As Long

Dim IncAngle As Double

IncAngle =  / NumOfSides

For PointIndex = LBound(ShapePoints) To UBound(ShapePoints)

ShapePoints(PointIndex) = Point3dAddAngleDistance(CenterPoint, Radians(IncAngle * PointIndex), Radius, )

Next

Set CreatePolygon = CreateShapeElement1(Nothing, ShapePoints)

End Function

Sub TestCreatePolygon()

Dim CPoint As Point3d

Dim myShape As ShapeElement

Dim I As Long

Dim Length As Double

Length = 

For I =  To  Step 

Set myShape = CreatePolygon(CPoint, I, Length)

Length = Length + 

ActiveModelReference.AddElement myShape

Next I

End Sub

Dim CPoint As Point3d

Dim myEllipse As EllipseElement

Dim rotMatrix As Matrix3d

Dim inputQueue As CadInputQueue

Dim intputMessage As CadInputMessage

Set inputQueue = CadInputQueue

Set inputMessage = inputQueue.GetInput(msdCadInputTypeDataPoint, msdCadInputTypeAny)

Do

Select Case inputMessage.InputTyoe

Case msdCadInputTypeDatePoint

CPoint = inputMessage.Point

Set myEllipse = CreateEllipseElement2(Nothing, CPoint, 0.5, 0.5, rotMatrix)

ActiveModelReference.AddElement myEllipse

Exit Do

Case msdCadInputTypeReset

Exit Do

End Select

Loop

MicroStation VBA 可视化界面的更多相关文章

  1. MicroStation VBA 操作提示

    Sub TestShowCommand() ShowCommand "画条线" ShowPrompt "选择第一个点" ShowStatus "选择第 ...

  2. MicroStation VBA基础

    实习笔记1 2016年8月1日 14:12 Option Explicit 缺省情况下,如果使用一个没有声明的变量,它将继承“Variant”类型.在模块.窗体和类的通用声明区使用“OptionExp ...

  3. awt可视化界面上传数据到mysql,jsp通过jdbc方式查询数据库,并将结果打印在网页上

    今天尝试写一个小demo实现下之前看过的代码,目的了解不同文件的数据访问,掌握如何获取前台数据,如何将数据库的数据在前端页面展示. awt可视化界面可已实现提交数据到数据库,也可查询数据在控制台打印. ...

  4. GDB-Dashboard-GDB可视化界面

    项目地址 https://github.com/cyrus-and/gdb-dashboard 项目介绍 gdb-dashboard是一个gdb的可视化界面,可以通过web或者终端来现实可视化信息,支 ...

  5. Ubuntu mysql安装,还有可视化界面

    安装mysql sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install lib ...

  6. Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用

    学习Solr前需要有Lucene的基础 Lucene的一些简单用法:https://www.cnblogs.com/dddyyy/p/9842760.html 1.部署Solr到Tomcat(Wind ...

  7. docker swarm 集群及可视化界面的安装及配置

    docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  8. 可视化界面:ElasticSearch Head,最方便的是直接下载谷歌浏览器扩展程序

    可视化界面:ElasticSearch Head,最方便的是直接下载谷歌浏览器扩展程序

  9. 关于Eclipse上使用可视化设计界面(Java EE 使用可视化界面设计)

    Eclipse下可视化界面实现——WindowBulider安装 第一步: WindowBuilder官方下载安装说明地址:http://www.eclipse.org/windowbuilder/d ...

随机推荐

  1. jquery的promise实践--连续加载图片

    在javascript设计模式实践之代理模式--图片预加载中用代理模式实现了图片预加载功能. 现在就更进一步,完成一个能够一张一张的连续图片加载的功能. 功能: 1.一张一张加载图片. 2.加载错误, ...

  2. 关于C#基础

    前几天帮人做个社交网站,还是用的控件方式,不过学习了ajax和一般处理程序ashx后,也用在了里面一些,今天回来继续写博客.继续上次总结下基础知识,学的内容多,总结的可能比较杂乱,分条总结为平时能自己 ...

  3. C#编程总结(三)线程同步

    C#编程总结(三)线程同步 在应用程序中使用多个线程的一个好处是每个线程都可以异步执行.对于 Windows 应用程序,耗时的任务可以在后台执行,而使应用程序窗口和控件保持响应.对于服务器应用程序,多 ...

  4. Oracle--(Hierarchical Queries)层级查询

    内容来自: Oracle® Database SQL Language Reference 11g Release 2 (11.2) E41084-03. empolyees表来自hr方案,wareh ...

  5. How do I set the default schema for a user in MySQL

    http://stackoverflow.com/questions/12426320/how-do-i-set-the-default-schema-for-a-user-in-mysql   up ...

  6. 修复 XE7 update1 发布 iOS 8.x 实机问题

      1. 开启工程目录下面的 Entitlement.TemplateiOS.xml 档案. 2. 加入二行: <key>application-identifier</key> ...

  7. 最小生成二叉树-prim算法

    1.prim算法:一种计算生成最小生成树的方法,它的每一步都会为一棵生长中的树添加一条边. 2.时间复杂度:

  8. 原生态的ajax 及json和gson学习资源

    @RequestMapping(value = "/{id}/view") @jsobody public String viewProject( @PathVariable(&q ...

  9. Linux练习

    1.创建目录/perm ,在/perm目录下创建文件newfile ,授予/perm目录所有用户都有rwx权限: #创建perm目录 [root@CentOS62 ~]# mkdir perm [ro ...

  10. Java--Exchanger用于进行线程间的数据交换

    package com; import java.util.concurrent.Exchanger; /** * Created by yangyu on 16/11/28. */ /** * Ex ...