乐筑天下

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

[编程交流] vb。net需要帮助

[复制链接]

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:17:57 | 显示全部楼层 |阅读模式
我在vb中绘制xline时遇到问题。网
 
它似乎在说,我如何设置xline的起始点存在问题。
 
谁能给我一个例子,如何在vb中绘制一个xline。网
 
这是我的一些
 
  1. [size=2][color=#0000ff]Dim [/color][/size][size=2]PEO1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityOptions = [/size][size=2][color=#0000ff]New [/color][/size][size=2]PromptEntityOptions(VBCR & "Select top of batter: ")
  2. peo1.SetRejectMessage(" Invalid entity! Select LWPoly, 2DPoly, 3DPoly, Line, Arc or Spline only!")
  3. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  4. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline2d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  5. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline3d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  6. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](Line),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  7. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](spline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  8. peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](arc),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  9. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PER1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityResult = ED.GetEntity(PEO1)
  10. [/size][size=2][color=#0000ff]If [/color][/size][size=2]PER1.Status <> PROMPTSTATUS.OK [/size][size=2][color=#0000ff]Then Exit Function
  11. [/color][/size][size=2]TopCurve = trans.GetObject(per1.ObjectId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
  12. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PEO2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityOptions = [/size][size=2][color=#0000ff]New [/color][/size][size=2]PromptEntityOptions(VBCR & "Select bottom of batter: ")
  13. peo2.SetRejectMessage(" Invalid entity! Select LWPoly, 2DPoly, 3DPoly, Line, Arc or Spline only!")
  14. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  15. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline2d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  16. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline3d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  17. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](Line),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  18. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](spline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  19. peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](arc),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
  20. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PER2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityResult = ED.GetEntity(PEO2)
  21. [/size][size=2][color=#0000ff]If [/color][/size][size=2]PER2.Status <> PROMPTSTATUS.OK [/size][size=2][color=#0000ff]Then Exit Function
  22. [/color][/size][size=2]BottomCurve = trans.GetObject(per2.ObjectId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
  23. [/size]
  24. [size=2][color=#0000ff]Dim [/color][/size][size=2]PDO [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptDoubleOptions = [/size][size=2][color=#0000ff]new [/color][/size][size=2]PromptDoubleOptions(vbcr & "Specify distance between batter ticks: ")
  25. PDO.AllowNegative = [/size][size=2][color=#0000ff]False
  26. [/color][/size][size=2]PDO.AllowZero = [/size][size=2][color=#0000ff]False
  27. [/color][/size][size=2]PDO.AllowArbitraryInput = [/size][size=2][color=#0000ff]False
  28. [/color][/size][size=2]PDO.AllowNone = [/size][size=2][color=#0000ff]False
  29. [/color][/size][size=2]PDO.DefaultValue = 5
  30. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PDR [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptDoubleResult = ed.GetDouble(PDO)
  31. [/size][size=2][color=#0000ff]If [/color][/size][size=2]PDR.Status <> Promptstatus.OK [/size][size=2][color=#0000ff]Then Exit Function
  32. [/color][/size]
  33. [size=2][color=#0000ff]Dim [/color][/size][size=2]TopCurveLen [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]Long [/color][/size][size=2]= topcurve.GetDistanceAtParameter(topcurve.EndParam)[/size]
  34. [color=#008000][/color]
  35. [size=2][color=#0000ff]Dim [/color][/size][size=2]DistBetween [/size][size=2][color=#0000ff]as [/color][/size][size=2][color=#6f002f]Integer [/color][/size][size=2]= PDR.Value
  36. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StepLength1 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]double [/color][/size][size=2]= DistBetween
  37. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StepLength2 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]double [/color][/size][size=2]= (steplength1 / 2)
  38. [/size]
  39. [size=2][color=#0000ff]Dim [/color][/size][size=2]StartPt1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3d()
  40. StartPt1 = topCurve.GetPointAtDist(StepLength1)
  41. ''msgbox (startpt1.ToString)
  42. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StartPt2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3d()
  43. StartPt2 = topcurve.GetPointAtDist(StepLength2)
  44. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]EndPt1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3D()
  45. EndPt1 = bottomcurve.GetClosestPointTo(StartPt1, [/size][size=2][color=#0000ff]True[/color][/size][size=2])
  46. ''msgbox (endpt1.ToString)
  47. [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]EndPt2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = BottomCurve.GetClosestPointTo(StartPt2, [/size][size=2][color=#0000ff]true[/color][/size][size=2])
  48. [/size]
  49. [size=2][color=#0000ff]Dim [/color][/size][size=2]Xline1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Xline = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Xline()
  50. xline1.StartPoint = startpt1[/size][size=2][color=#008000]'PROBLEM HERE
  51. [/color][/size][size=2]xline1.EndPoint = ENDPT1[/size][size=2][color=#008000]'PROBLEM HERE
  52. [/color][/size][size=2]Xline1.Visible = [/size][size=2][color=#0000ff]True
  53. [/color][/size][size=2]AcadBTR.AppendEntity(xLINE1)
  54. Trans.AddNewlyCreatedDBObject(Xline1, [/size][size=2][color=#0000ff]True[/color][/size][size=2])
  55. Trans.Commit()
  56. [/size]

 
我是vb新手。所以请友善一点。
 
任何示例材料或网站也会有所帮助
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:23:42 | 显示全部楼层
您是否尝试过:
 
xline1.BasePoint=startpt1
xline1.SecondPoint=ENDPT1
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:29:43 | 显示全部楼层
它表示“Secondpoint-不是AutoDesk.Autocad.DatabaseServices.XLINE的成员”
 
还有其他想法吗??
 
至少它跳过了StartPt1作为一个错误
 
到达那里
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:33:05 | 显示全部楼层
 
这很奇怪。它列在文档中,我可以让它与我现有的一些C代码一起工作。
161759ni6k25bi4se328x6.jpg
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:35:46 | 显示全部楼层
你从哪里得到帮助指南的??
 
它是否随autocad 2009一起提供??
 
那真的很有帮助。我只是在网上学习,反复尝试
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:41:03 | 显示全部楼层
去:http://usa.autodesk.com/adsk/servlet/index?id=773204&siteID=123112
 
然后单击许可证和下载链接。
 
该链接要求您提供一些信息,但反过来允许下载ObjectARX SDK。在那里,您可以找到的帮助文件。NET以及ObjectARX,以及一些可视化类映射和许多托管和非托管代码的代码示例。
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:45:35 | 显示全部楼层
非常感谢
 
我认为有了那个帮助指南会有所帮助。
 
嘿,我还是没有算出xline。vb中的第二点。网
 
如果你发现了,请告诉我-谢谢,伙计
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:47:55 | 显示全部楼层
 
我必须同意这一点。
 
 
 
如果包括这些进口:
 
导入Autodesk。AutoCAD。运行时
导入Autodesk。AutoCAD。几何学
导入Autodesk。AutoCAD。应用程序服务
导入Autodesk。AutoCAD。编辑输入
导入Autodesk。AutoCAD。数据库服务
 
此示例如何为您工作:
 
  1.    <CommandMethod("QA")> _
  2. Public Sub Asdkcmd1()
  3.        Dim db As Database = HostApplicationServices.WorkingDatabase
  4.        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
  5.        Using trans As Transaction = db.TransactionManager.StartTransaction()
  6.            Dim ppo As PromptPointOptions = New PromptPointOptions("Select Base Point :")
  7.            Dim ppr As PromptPointResult = ed.GetPoint(ppo)
  8.            If ppr.Status <> PromptStatus.OK Then Exit Sub
  9.            Dim base As Point3d = ppr.Value
  10.            ppo.Message = "Select Second Point :"
  11.            ppo.BasePoint = base
  12.            ppo.UseBasePoint = True
  13.            ppr = ed.GetPoint(ppo)
  14.            If ppr.Status <> PromptStatus.OK Then Exit Sub
  15.            Dim second As Point3d = ppr.Value
  16.            If base <> second Then
  17.                Dim entXline As Xline = New Xline()
  18.                entXline.BasePoint = base
  19.                entXline.SecondPoint = second
  20.                Dim btr As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite)
  21.                btr.AppendEntity(entXline)
  22.                trans.AddNewlyCreatedDBObject(entXline, True)
  23.            End If
  24.            trans.Commit()
  25.        End Using
  26.    End Sub
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:52:16 | 显示全部楼层
我不知道为什么它不起作用-但我不能在xline中添加“secondpoint”。
 
附上图片。
 
我正在使用这些导入
  1. [size=2][color=#0000ff]Imports [/color][/size][size=2]System
  2. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]System.Type
  3. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]System.CLSCompliantAttribute
  4. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]System.Reflection
  5. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]System.Runtime.InteropServices
  6. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Microsoft.VisualBasic
  7. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Autodesk.AutoCAD.Runtime
  8. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Autodesk.AutoCAD.Geometry
  9. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Autodesk.AutoCAD.ApplicationServices
  10. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Autodesk.AutoCAD.EditorInput
  11. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]Autodesk.AutoCAD.DatabaseServices
  12. [/size][size=2][color=#0000ff]imports [/color][/size][size=2]Autodesk.AutoCAD.GraphicsInterface
  13. [/size][size=2][color=#0000ff]Imports [/color][/size][size=2]AcadApp = autodesk.AutoCAD.ApplicationServices.Application
  14. [/size]

 
我的Acad参考文献还有:;
acdbmgd。dll
acmdg。dll
 
 
有什么想法吗??
161801k1mmqmvjml91t89t.jpg
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-6 15:54:03 | 显示全部楼层
12345678910
161802zzbo66uolpipx62i.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 21:06 , Processed in 0.974513 second(s), 74 queries .

© 2020-2025 乐筑天下

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