乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 4

请大家帮我修改一下绘制长圆的VBA程序

[复制链接]

3

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
16
发表于 2012-7-5 20:59:00 | 显示全部楼层 |阅读模式
下面是我写的一个绘制长圆(两端是半圆、中间是矩形)的VBA程序,可根据用户提供的中心坐标、长轴长度和短轴长度、长轴与X轴正方向的夹角绘制方向任意的长圆。
  1. Public Sub CreateLongCircle()
  2.   
  3.   '获取长圆中心坐标
  4.   Dim center As Variant
  5.   center = ThisDrawing.Utility.GetPoint(, "请在屏幕上拾取一点作为长圆的中心或输入中心坐标:")
  6.   
  7.   '获取长轴与X轴正方向夹角
  8.   Dim angle As Double
  9.   angle = pi / 180 * ThisDrawing.Utility.GetReal("请输入长轴与X轴正方向的夹角:")
  10.   
  11.   '获取长轴长度
  12.   Dim longAxis As Double
  13.   longAxis = ThisDrawing.Utility.GetReal("请输入长轴长度:")
  14.   
  15.   '获取短轴长度
  16.   Dim shortAxis As Double
  17.   shortAxis = ThisDrawing.Utility.GetReal("请输入短轴长度:")
  18.   
  19.   Dim halfL As Double
  20.   halfL = (longAxis - shortAxis) / 2
  21.   Dim halfS As Double
  22.   halfS = shortAxis / 2
  23.   
  24.   '计算各顶点坐标
  25.   Dim vertices(1 To 8) As Double
  26.   vertices(1) = center(0) + halfL: vertices(2) = center(1) - halfS
  27.   vertices(3) = center(0) + halfL: vertices(4) = center(1) + halfS
  28.   vertices(5) = center(0) - halfL: vertices(6) = center(1) + halfS
  29.   vertices(7) = center(0) - halfL: vertices(8) = center(1) - halfS
  30.   
  31.   Dim plineObj As AcadLWPolyline
  32.   Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(vertices)
  33.   
  34.   plineObj.Closed = True
  35.   plineObj.SetBulge 0, 1
  36.   plineObj.SetBulge 2, 1
  37.   
  38.   '旋转长圆
  39.   plineObj.Rotate center, angle
  40.   plineObj.Update
  41.   
  42. End Sub

但是我运行后发现每次绘制出来的长圆都是长轴平行于X轴,Rotate函数好像没起作用,请问问题出在哪里?非常感谢!
回复

使用道具 举报

14

主题

180

帖子

12

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
236
发表于 2012-7-6 10:03:00 | 显示全部楼层
没有给PI赋值.pi=0 !!!!!
回复

使用道具 举报

3

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
16
发表于 2012-7-6 20:52:00 | 显示全部楼层

非常感谢!问题已解决,确实是您所说的问题。和AutoLISP搞混了,原来VB没有PI这个常数,已经用4*Atn(1)替代了。
回复

使用道具 举报

31

主题

227

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
351
发表于 2012-7-18 18:03:00 | 显示全部楼层
可以先定义个常数pi,好像是const pi=3.1415
回复

使用道具 举报

1

主题

18

帖子

3

银币

初来乍到

Rank: 1

铜币
22
发表于 2012-7-26 10:15:00 | 显示全部楼层
正在找这方面的学习呢,谢谢了,
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 05:26 , Processed in 1.298738 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表