明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1132|回复: 4

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

[复制链接]
发表于 2012-7-5 20:59:45 | 显示全部楼层 |阅读模式
下面是我写的一个绘制长圆(两端是半圆、中间是矩形)的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函数好像没起作用,请问问题出在哪里?非常感谢!
发表于 2012-7-6 10:03:30 | 显示全部楼层
没有给PI赋值.pi=0 !!!!!
 楼主| 发表于 2012-7-6 20:52:13 | 显示全部楼层
VBALISPER 发表于 2012-7-6 10:03
没有给PI赋值.pi=0 !!!!!

非常感谢!问题已解决,确实是您所说的问题。和AutoLISP搞混了,原来VB没有PI这个常数,已经用4*Atn(1)替代了。
发表于 2012-7-18 18:03:03 | 显示全部楼层
可以先定义个常数pi,好像是const pi=3.1415
发表于 2012-7-26 10:15:22 | 显示全部楼层
正在找这方面的学习呢,谢谢了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:19 , Processed in 0.155947 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表