乐筑天下

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

[编程交流] 弧线(&P)

[复制链接]

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 22:38:15 | 显示全部楼层 |阅读模式
给我一个弧,但我不能从弧的中心和弧的中心弧到一条线的开始,请帮忙
“Visual Basic与AutoCAD软件”
回复

使用道具 举报

44

主题

542

帖子

502

银币

后起之秀

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

铜币
220
发表于 2022-7-6 22:42:38 | 显示全部楼层
有趣的问题。。。也许可以上传图纸并提供有关问题的更多细节?
回复

使用道具 举报

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 22:50:33 | 显示全部楼层
Visual Basic与AutoCAD软件
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 22:51:11 | 显示全部楼层
从中的屏幕截图上传您的图片。jpeg或。png格式
告诉我们你想要什么
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 22:57:17 | 显示全部楼层
  1. <CommandMethod("twoarcs")> _
  2. Public Sub AddArcsOnLine()
  3. Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
  4. Dim ed As Editor = acDoc.Editor
  5. Dim db As Database = acDoc.Database
  6. Dim mtx As Matrix3d = ed.CurrentUserCoordinateSystem
  7. Dim ucs As CoordinateSystem3d = mtx.CoordinateSystem3d
  8. Try
  9. Using tr As Transaction = db.TransactionManager.StartTransaction
  10. Dim peo As New PromptEntityOptions(vbLf & "Select line >>")
  11. peo.SetRejectMessage(vbLf & "Selected is not a line>>")
  12. peo.AddAllowedClass(GetType(Line), False)
  13. Dim res As PromptEntityResult
  14. res = ed.GetEntity(peo)
  15. If res.Status <> PromptStatus.OK Then
  16. Return
  17. End If
  18. Dim ent As Entity = DirectCast(tr.GetObject(res.ObjectId, OpenMode.ForRead), Entity)
  19. If ent Is Nothing Then
  20. Return
  21. End If
  22. Dim lin As Line = Nothing
  23. If TypeOf ent Is Line Then
  24. lin = DirectCast(ent, Line)
  25. End If
  26. Dim btr As BlockTableRecord = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) '<-- get current space
  27. Dim plan As Plane = New Plane(Point3d.Origin, ucs.Zaxis)
  28. Dim p1 As Point3d = lin.StartPoint
  29. Dim p2 As Point3d = lin.EndPoint
  30. Dim ang = lin.Angle
  31. Dim mpt As Point3d = New Point3d((p1.X + p2.X) / 2, (p1.Y + p2.Y) / 2, (p1.Z + p2.Z) / 2)
  32. Dim cpt1 As Point3d = New Point3d((p1.X + mpt.X) / 2, (p1.Y + mpt.Y) / 2, (p1.Z + mpt.Z) / 2)
  33. Dim cpt2 As Point3d = New Point3d((mpt.X + p2.X) / 2, (mpt.Y + p2.Y) / 2, (mpt.Z + p2.Z) / 2)
  34. Dim arc1 As Arc = New Arc(cpt1, lin.GetDistAtPoint(cpt1), ang, Math.PI + ang)
  35. arc1.Normal = lin.Normal
  36. btr.AppendEntity(arc1)
  37. tr.AddNewlyCreatedDBObject(arc1, True)
  38. Dim arc2 As Arc = New Arc(cpt2, lin.GetDistAtPoint(cpt1), ang, Math.PI + ang)
  39. arc1.Normal = lin.Normal
  40. btr.AppendEntity(arc2)
  41. tr.AddNewlyCreatedDBObject(arc2, True)
  42. tr.Commit()
  43. End Using
  44. Catch ex As System.Exception
  45. Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(String.Format( _
  46. "ERROR: " & Environment.NewLine & "{0}" & Environment.NewLine _
  47. & "TRACE: " + Environment.NewLine + "{1}", ex.Message, ex.StackTrace))
  48. Finally
  49. 'do nothing
  50. End Try
  51. End Sub
回复

使用道具 举报

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 23:01:37 | 显示全部楼层
 
亲爱的…
在感谢你回答我所有问题的同时,我想知道你是否可以帮助我更多。
我想再次提出我的问题,因为你的回答不是我需要的。问题是,我们需要锥形罐顶的开发及其相关程序。我们得到了圆锥形,所以我们有所有的圆锥形数据。
 
顺致敬意,
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 23:05:05 | 显示全部楼层
你这么懒把照片贴在这里吗
而不是你的错误问题?
我在帖子4中要求你上传一张照片
对不起,我要离开这里,
你自己做你的工作
回复

使用道具 举报

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 23:12:19 | 显示全部楼层
///////////////////////////////////////////////////////////
 
http://up.iranblog.com/images/jc4ckiaxekogtewo5lz.bmp
 

                               
登录/注册后可看大图

 

                               
登录/注册后可看大图

 
 
 
尊敬的fixo:,
 
对于给您带来的不便,我深表歉意,我不是故意的,我真的急需找到答案。我想知道你是否能像往常一样帮我。请查收这张照片。提前谢谢。为了更好地理解这个问题,请注意
附加文件。
 
顺致敬意,
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 23:14:46 | 显示全部楼层
试试这个
希望它能让你开始
查看帮助文件中的其他内容
  1. Option Explicit
  2. Public Sub AddTwoArcs()
  3. Dim sset As AcadSelectionSet
  4. Dim dxfCode, dxfValue
  5. Dim ftype(0) As Integer
  6. Dim fdata(0) As Variant
  7. ftype(0) = 0: fdata(0) = "LINE"
  8. dxfCode = ftype: dxfValue = fdata
  9. Dim lineObj As Object
  10. Dim oEnt As AcadEntity
  11. Dim stPt As Variant
  12. Dim endPt As Variant
  13. Dim movePt As Variant
  14. Dim perpAng As Double
  15. Dim rotAng As Double
  16. Dim PI As Double
  17. PI = Atn(1) * 4
  18. ' Define the new selection set object
  19. With ThisDrawing.SelectionSets
  20. While .Count > 0
  21. .Item(0).Delete
  22. Wend
  23. Set sset = .Add("$Lines$")
  24. End With
  25. sset.SelectOnScreen dxfCode, dxfValue
  26. If sset.Count = 0 Then
  27. MsgBox ("No lines selected")
  28. Exit Sub
  29. End If
  30. For Each oEnt In sset
  31. ' get the line object
  32. Set lineObj = oEnt
  33. stPt = lineObj.StartPoint
  34. endPt = lineObj.EndPoint
  35. Dim dblAng As Double
  36. ' get line angle
  37. dblAng = lineObj.Angle
  38. Dim mpt(2) As Double
  39. Dim cpt1(2) As Double
  40. Dim cpt2(2) As Double
  41. Dim leng As Double
  42. leng = lineObj.Length
  43. Dim tmp As Variant
  44. tmp = ThisDrawing.Utility.PolarPoint(stPt, dblAng, leng / 4)
  45. cpt1(0) = tmp(0): cpt1(1) = tmp(1): cpt1(2) = 0#
  46. tmp = ThisDrawing.Utility.PolarPoint(stPt, dblAng, leng * 0.75)
  47. cpt2(0) = tmp(0): cpt2(1) = tmp(1): cpt2(2) = 0#
  48. Dim oArc1 As AcadArc
  49. Set oArc1 = ThisDrawing.ModelSpace.AddArc(cpt1, leng / 4, dblAng, dblAng + PI)
  50. Dim oArc2 As AcadArc
  51. Set oArc2 = ThisDrawing.ModelSpace.AddArc(cpt2, leng / 4, dblAng, dblAng + PI)
  52. Next
  53. End Sub

我现在更改了代码,对你来说没问题
回复

使用道具 举报

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 23:19:57 | 显示全部楼层
 
非常感谢您的友好回答。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 05:48 , Processed in 0.845100 second(s), 72 queries .

© 2020-2025 乐筑天下

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