乐筑天下

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

[编程交流] 在UCS上绘制圆弧

[复制链接]

13

主题

31

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 22:35:53 | 显示全部楼层 |阅读模式
很好的一天
 
一个程序如何绘制圆弧(点、半径、角度、角度)
 
根据WCS不断绘制弧?角度也与WCS有关。如果从两点3D绘制直线-ucs没有问题-但即使用户已更改为ucs,圆弧和圆仍保留为WCS?
 
是,这里需要帮助
即使只是一个简单的例子,在当前用户UCS上画一个弧也会很棒
 
干杯
穴居人
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 23:04:33 | 显示全部楼层
这些链接可能有用:
 
AutoCAD。NET开发者指南,这里有一个片段:
 
 
将角度从UCS转换为WCS
 
计算UCS和WCS之间的角度
 
HTH公司
回复

使用道具 举报

13

主题

31

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 23:19:27 | 显示全部楼层
干杯谢谢提供的源代码
有机会的时候我会复习的
 
下面是我创建的两个公共模块,它们同样有效。
用红色加高是我的错误-Arc未转换为当前ucs。
 
______________________________________________________________________
 
  1. Code:
  2. PublicModule ModDrawArc
  3. FriendFunction DrawArc(ByVal startPoint As Point3d, ByVal Radius AsDouble, ByVal StartAngle AsDouble, ByVal EndAngle AsDouble) As Arc
  4. Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  5. Dim acCurDb As Database = acDoc.Database
  6. acDoc.LockDocument()
  7. Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  8. Dim acBlkTbl As BlockTable
  9. acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
  10. Dim acBlkTblRec As BlockTableRecord
  11. acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
  12. Dim acArc As Arc = New Arc(startPoint, Radius, StartAngle, EndAngle)
  13. [color=red]acArc.TransformBy(GetUcsMatrix(acCurDb))[/color]
  14. acBlkTblRec.AppendEntity(acArc)
  15. acTrans.AddNewlyCreatedDBObject(acArc, True)
  16. acTrans.Commit()
  17. [size=2][size=2][color=black]End[/color][/size][/size][size=2][size=2][color=black]Using[/color][/size]
  18. [/size][color=black][size=2][size=2]End[/size][/size][size=2][size=2]Function[/size][/size][/color]
  19. [size=2][color=#0000ff][size=2][color=#0000ff]_____________________________________________________________[/color][/size][/color][/size]
  20. [color=black] [/color]
  21. [color=black][size=2][size=2]Friend[/size][/size][size=2][size=2]Function[/size][/size][size=2] GetUcsMatrix([/size][size=2][size=2]ByVal[/size][/size][size=2] db [/size][size=2][size=2]As[/size][/size][size=2] Database) [/size][size=2][size=2]As[/size][/size][size=2] Matrix3d[/size][/color]
  22. [color=black][size=2][size=2]Dim[/size][/size][size=2] origin [/size][size=2][size=2]As[/size][/size][size=2] Point3d = db.Ucsorg[/size][/color]
  23. [color=black][size=2][size=2]Dim[/size][/size][size=2] xAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = db.Ucsxdir[/size][/color]
  24. [color=black][size=2][size=2]Dim[/size][/size][size=2] yAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = db.Ucsydir[/size][/color]
  25. [color=black][size=2][size=2]Dim[/size][/size][size=2] zAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = xAxis.CrossProduct(yAxis)[/size][/color]
  26. [color=black][size=2][size=2]Return[/size][/size][size=2] Matrix3d.AlignCoordinateSystem(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, _[/size][/color]
  27. [size=2][color=black]Vector3d.ZAxis, origin, xAxis, yAxis, zAxis)[/color][/size]
  28. [color=black][size=2][size=2]End[/size][/size][size=2][size=2]Function[/size][/size][/color]

欣赏
干杯
穴居人
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 23:46:11 | 显示全部楼层
穴居人
 
请阅读代码发布指南并编辑您的帖子。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 06:08 , Processed in 0.997312 second(s), 60 queries .

© 2020-2025 乐筑天下

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