' ----------------------------------------- ' 使用三点创建圆弧 CreateArcElement1() ' ----------------------------------------- Sub CreateArc1() ' 定义圆弧的三个点以及一个元素 Dim pntStart As Point3d ' 与圆心坐标的连线定出圆弧起始位置 Dim pntCenter As Point3d ' 圆心坐标 Dim pntEnd As Point3d ' 与圆心坐标的连线定出圆弧终止位置 Dim eleArc As ArcElement ' 初始化三个点 pntStart.X = 4 pntStart.Y = 2 pntStart.Z = 0 pntCenter.X = 2 pntCenter.Y = 0 pntCenter.Z = 0 pntEnd.X = 4 pntEnd.Y = 4 pntEnd.Z = 0 '创建三点圆弧 Set eleArc = CreateArcElement1(Nothing, pntStart, pntCenter, pntEnd) eleArc.Color = 3 ' 起终点不能为同一个点 If HasActiveModelReference And _ (pntStart.X <> pntEnd.X Or _ pntStart.Y <> pntEnd.Y Or _ pntStart.Z <> pntEnd.Z) Then ActiveModelReference.AddElement eleArc eleArc.Redraw Else Exit Sub End If End Sub ' ----------------------------------------- ' 使用起始角.终止角以及圆心创建圆弧 CreateArcElement2() ' ----------------------------------------- Sub CreateArc2() ' 定义两角度及圆心 Dim dblStartAngle As Double ' 起始角 Dim dblSweepAngle As Double ' 扫过角 Dim dblPrimaryRadius As Double ' 第一半径 Dim dblSecondaryRadius As Double ' 第二半径 Dim mtxRotation As Matrix3d Dim pntCenter As Point3d Dim eleArc As ArcElement ' 初始化变量 dblStartAngle = 3.1416 / 6 dblSweepAngle = 3.1416 dblPrimaryRadius = 5# dblSecondaryRadius = 15# pntCenter.X = 0 pntCenter.Y = 0 pntCenter.Z = 0 ' 创建圆弧 Set eleArc = CreateArcElement2(Nothing, pntCenter, dblPrimaryRadius, _ dblSecondaryRadius, mtxRotation, dblStartAngle, dblSweepAngle) eleArc.Color = 3 If HasActiveModelReference Then ActiveModelReference.AddElement eleArc eleArc.Redraw Else Exit Sub End If End Sub ' ----------------------------------------- ' 使用三点创建圆弧 CreateArcElement3() ' ----------------------------------------- Sub CreateArc3() ' 定义圆弧的三个点以及一个元素 Dim pntStart As Point3d ' 圆弧起点 Dim pntOnCurve As Point3d ' 圆弧上任意点 Dim pntEnd As Point3d ' 圆弧端点 Dim eleArc As ArcElement ' 初始化三个点 pntStart.X = 4 pntStart.Y = 2 pntStart.Z = 0 pntOnCurve.X = 2 pntOnCurve.Y = 4 pntOnCurve.Z = 0 pntEnd.X = 4 pntEnd.Y = 3 pntEnd.Z = 0 '创建三点圆弧 Set eleArc = CreateArcElement3(Nothing, pntStart, pntOnCurve, pntEnd) eleArc.Color = 3 ' 三点不同在一直线上,而且其中任意两点都不能相同(*未完成*) If HasActiveModelReference Then ActiveModelReference.AddElement eleArc eleArc.Redraw Else Exit Sub End If End Sub ' ----------------------------------------- ' 使用一点及一条射线创建圆弧 CreateArcElement4() ' ----------------------------------------- Sub CreateArc4() ' 定义圆弧的一个末点以及一条射线作为起始边 Dim pntEnd As Point3d Dim rayStart As Ray3d Dim eleArc As ArcElement ' 初始化变量 pntEnd.X = 0 pntEnd.Y = 3 pntEnd.Z = 0 rayStart.Origin.X = 0 rayStart.Origin.Y = 0 rayStart.Origin.Z = 0 rayStart.Direction.X = 3 rayStart.Direction.Y = 0 rayStart.Direction.Z = 0 Set eleArc = CreateArcElement4(Nothing, rayStart, pntEnd) eleArc.Color = 3 If HasActiveModelReference Then Application.ActiveModelReference.AddElement eleArc eleArc.Redraw End If End Sub ' ----------------------------------------- ' 使用一点及一条弦创建圆弧 CreateArcElement5() ' ----------------------------------------- Sub CreateArc5() ' 定义圆弧的一个末点以及一条弦作为起始边 Dim dblLong As Double ' 圆弧的长度 Dim pntPlane As Point3d ' 圆弧的方向 Dim segLine As Segment3d ' 圆弧的弦 Dim eleArc As ArcElement ' 初始化变量 pntPlane.X = 0 pntPlane.Y = 3 pntPlane.Z = 0 segLine.StartPoint.X = 0 segLine.StartPoint.Y = 0 segLine.StartPoint.Z = 0 segLine.EndPoint.X = 3 segLine.EndPoint.Y = 0 segLine.EndPoint.Z = 0 dblLong = 30 Set eleArc = CreateArcElement5(Nothing, segLine, dblLong, pntPlane) eleArc.Color = 3 If HasActiveModelReference Then Application.ActiveModelReference.AddElement eleArc eleArc.Redraw End If End Sub

Microstation VBA创建圆弧的五种方法相关推荐

  1. Linux创建文件的五种方法,Linux常用命令 - 五种创建文件命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! 创建文件,你知道有哪几个命令 ?(写出至少两种方式) 首先,touch 创建一个文件 touch yyTest. ...

  2. Linux创建文件的五种方法,Linux创建文件的5种方式

    1 touch 1.1 创建一个文件 touch yyTest.ini 1.2 同时创建两个文件 touch test1.txt test2.txt 1.3 批量创建文件(如创建2000个文件) to ...

  3. cocos2dx创造精灵的五种方法

     cocos2dx创建精灵的五种方法(包括使用图片名获取图片) // 创建精灵的五种方法 //方法一:直接创建精灵//适合于要显示的是这张图片的全部区域,CCSprite * sprite = C ...

  4. 五种方法创建 Java 对象,你知道几种呢?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 网络 五种方法创建java对象 作为Java开 ...

  5. vba九九乘法表代码_用五种方法利用EXCEL制作九九乘法表

    昨天因贪玩了一下,一天都和同事在外面玩,计划就是这一天让自己啥也不做,一天玩下来,觉得好累,原来玩也是很累的.既然在外面放松了一天了,今天就把昨天的九九乘法表的制作方法给补上来.事实上九九乘法表的制作 ...

  6. 创建五星级评级的五种方法

    在喜欢和社交统计的世界中,评论是留下反馈的一种非常重要的方法.用户往往喜欢先了解他人的意见,然后再决定自己购买的物品,甚至是看电影看的文章,或者就餐的餐厅. 开发人员经常与审查作斗争--通常会看到难以 ...

  7. JAVA中创建线程池的五种方法及比较

    之前写过JAVA中创建线程的三种方法及比较.这次来说说线程池. JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用.另一类是通过Thr ...

  8. Java字符串拼接的五种方法,哪种性能最好?

    作者 | 老坛酸菜WH 来源 | https://www.cnblogs.com/twzheng/p/5923642.html > 字符串拼接一般使用"+",但是" ...

  9. python压缩包怎么安装-详解python解压压缩包的五种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. t ...

最新文章

  1. 动态更新 AGS Cache
  2. MySQL面试题 | 附答案解析(八)
  3. TCP和UDP应用场景
  4. BugKuCTF WEB 管理员系统
  5. JavaScript实现shortestCommonSupersequence最短公共超序列算法(附完整源码)
  6. js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
  7. 初识设计模式(装饰者模式)
  8. 数据结构专题(二):2.3链表插入元素,尾插法
  9. 同样是程序员,他转行在新加坡卖鱼走向巅峰!
  10. 【随记】还原SQL Server数据库步骤
  11. 三段式状态机理解浅析
  12. Proteus的使用总结
  13. 思科网络工程师面试题
  14. 形象标识 新松机器人_新松SIASUN工业机器人标志logo设计,品牌设计vi策划
  15. [置顶]史上最详细最全的Linux上安装Oracle的教程-centos7-humf
  16. HBase BulkLoad批量写入数据实战
  17. 阿里魔改的mysql叫啥_mysql 改变数据库名
  18. GB28181公网语音对讲
  19. 租车汽车租赁系统开发
  20. 抖音账号和视频都没有问题,为什么我的流量还是不好?丨国仁网络资讯

热门文章

  1. mathtype安装及报错解决
  2. 运动App如何实现端侧后台保活,让运动记录更完整?
  3. unity屏幕后处理全家桶之color grading
  4. SPASS按年份拆分文件
  5. mac升级到 macos ventura 13.0 后,git失效及gitlab认证失败问题
  6. MAC Omnigraffle 泳道图及流程图标型版分享
  7. Distill详述「可微图像参数化」:神经网络可视化和风格迁移利器!
  8. pytorch中的kl divergence计算问题
  9. 手机酒精测试仪软件有用么,“酒精测试仪”手机软件走俏 交警称不可信
  10. 基于armv8的kvm实现分析(三)kvm初始化流程