明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1776|回复: 6

如何通过三点作一段直线PLINE和圆弧PLINE?

[复制链接]
发表于 2004-6-18 17:23:00 | 显示全部楼层 |阅读模式
已知Pt1,Pt2,Pt3,怎么样用才能作出一段PLINE,要求Pt1至Pt2为直线,Pt2至Pt3 之间为一圆弧? 我知道在AutoCAD里面可以轻松实现,在VBA里面怎么实现啊?紧急求助!谢谢!
发表于 2004-6-18 18:00:00 | 显示全部楼层
先画三个点的多段线,然后设置第二段的凸度。
 楼主| 发表于 2004-6-18 18:03:00 | 显示全部楼层
一般的可以作出来,但是如果要求圆弧和直线相切的话,圆弧的凸度应该怎么计算啊?
发表于 2004-6-18 18:49:00 | 显示全部楼层
tangagen发表于2004-6-18 18:03:00一般的可以作出来,但是如果要求圆弧和直线相切的话,圆弧的凸度应该怎么计算啊?
  1. Sub test()
  2. Dim p1, p2, p3 As Variant, p(5) As Double
  3. p1 = ThisDrawing.Utility.GetPoint(, "请输入第一点:")
  4. p2 = ThisDrawing.Utility.GetPoint(p1, "请输入第二点:")
  5. p3 = ThisDrawing.Utility.GetPoint(p2, "请输入第三点:")
  6. p(0) = p1(0): p(1) = p1(1)
  7. p(2) = p2(0): p(3) = p2(1)
  8. p(4) = p3(0): p(5) = p3(1)Dim ang1 As Double, ang2 As Double, ang As Double
  9. ang1 = ThisDrawing.Utility.AngleFromXAxis(p1, p2)
  10. ang2 = ThisDrawing.Utility.AngleFromXAxis(p2, p3)
  11. ang = 3.1415926 + ang1 - ang2Dim pl As AcadLWPolyline
  12. Set pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(p)pl.SetBulge 1, Tan(0.5 * 3.1415926 - 0.5 * ang)
  13. End Sub
 楼主| 发表于 2004-6-19 15:19:00 | 显示全部楼层
ang = 3.1415926 + ang1 - ang2 pl.SetBulge 1, Tan(0.5 * 3.1415926 - 0.5 * ang) 为什么不直接用pl.SetBulge 1,Tan(0.5 * (ang1 - ang2)) 呢,还有这种情况在ang = 90 还得专门处理吧?
发表于 2004-6-19 17:48:00 | 显示全部楼层
程序很多都要求角度为弧度
发表于 2004-6-29 14:26:00 | 显示全部楼层
有意思!好用,我先下.


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

本版积分规则

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

GMT+8, 2024-11-28 04:28 , Processed in 0.176463 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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