第十章 可视界面

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. C语言学习008:标准错误

    在上一节中的数据文件中(C语言学习007:重定向标准输入和输出),如果文件中的数据包含非法数据,如何让程序显示一条错误的提示消息呢?就需要用到标准错误 #include <stdio.h> ...

  2. Winform防止程序重复运行

    需求:1.点击“关闭”按钮时,程序最小化到托盘,并没有退出,这时再次运行程序,不会重复运行,而是显示已运行的程序:2.支持不同目录:3.支持修改名称. 代码(不支持修改名称,不支持不同目录): usi ...

  3. 在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储

    在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如 ...

  4. 一个不错的php验证码的类

    类的代码: <?php class Captcha { private $width; private $height; private $codeNum; private $code; pri ...

  5. 【Java每日一题】20161025

    20161024问题解析请点击今日问题下方的"[Java每日一题]20161025"查看 package Oct2016; import static java.lang.Math ...

  6. ASP.NET Boilerplate Zero启动方式

    1.打开解决方案还原nuget包 2.设置 ModuleZeroSampleProject.Web 为启动项目[带有有数据库连接字符串的项目] 3.重启vs后.打开  视图>其他窗口>程序 ...

  7. C#Winform VScrollBar+Pannel自定义列表控件(原)

    该控件的主要实现思路是用的objective-c中的自定义控件思路,主视图中放子视图 效果图 (窗体调用代码) public partial class Form1 : RibbonForm { Li ...

  8. 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

    http://www.jb51.net/article/27616.htm   有次同事提出开发使用的mysql数据库连接很慢,因为我们的mysql开发数据库是单独一台机器部署的,所以认为可能是网络连 ...

  9. SQL语句操作数据-------开启旅程路线喽!

    岁月,是一首诗,一首蕴含丰富哲理的诗,岁月是一峰骆驼,驮着无数人的梦想. 一.SQL的简介 SQL的全称是“结构化查询语言”(Structure Query Language),SQL语言是针对数据库 ...

  10. mysql登录时闪退的问题

    之前mysql用着好着,可是今天在启动mysql后输入密码出现了闪退,在任务管理器中发现mysql服务没有启动,当手动启动时提示拒绝访问.在网上查找原因发现问题所在. 问题原因:mysql服务没有安装 ...