乐筑天下

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

[编程交流] 与不工作相交

[复制链接]

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:53:38 | 显示全部楼层 |阅读模式
我在2D中工作,并使用vb。网
 
我有一条闭合多段线(矩形)。我有一条直线穿过它,也就是说,它相交两次。我使用以下代码:
 
Dim colIntersection作为新点3DCollection
糜棱线。IntersectWith(MyPolyLine,Intersect.OnBothOperands,\uColIntersection,1,1)
 
出于某种奇怪的原因,共线连接。计数始终等于1。一、 它只找到一个交点。
有人知道怎么把它们都弄到手吗?
回复

使用道具 举报

35

主题

97

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
175
发表于 2022-7-6 11:59:11 | 显示全部楼层
我试过这个:
 
Dim colIntersection As Point3dCollection=新的Point3dCollection(myLine.IntersectWith(MyPolyLine))
 
我在论坛上看到了这个代码(http://www.cadtutor.net/forum/showthread.php?t=39190). 肖特提出了一个解决方案,他们声称它有效!
 
一、 另一方面,获取以下错误:错误1重载解析失败,因为没有可访问的“IntersectWith”接受此数量的参数。
 
使用上一篇文章中的代码,我添加了许多线,它们都与该多段线相交两次。我总是得到一个或没有交集点返回,从来没有2,因为我相信我应该得到。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:06:12 | 显示全部楼层
 
听起来有人试图使用这行代码:
 
  1. Dim ptArray() As Point3d = ls.IntersectWith(ra3d)

 
使用标准数据库曲线(无需先将其转换为Autodesk.AutoCAD.Geometry对应项)。
 
我也注意到你在theswamp上的帖子。org,其中似乎有解决问题的方法。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:08:25 | 显示全部楼层
嗨,肖特,
 
我试图建立一个点的集合,这些点是由一条直线与一条多段线的交点产生的。
 
此代码无效。。。(AutoCAD不断向我发送“参数过多”消息,并且在删除“、intersectPoints,0,0”之前不允许我继续操作)。。。
作为Autodesk的公共交点。AutoCAD。几何学点3DCollection
正面1。相交(objACADEntity2,Intersect.OnBothOperands,intersectPoints,0,0)
我不确定这是否有效。。。但至少它没有出错。。。(这是上述代码,删除了“.intersectPoints,0,0”)。。。
正面1。相交(objACADEntity2,Intersect.OnBothOperands)
我为AutoCAD图元“objACADEntity1”指定了一条线
我为AutoCAD图元“objACADEntity2”指定了一条多段线
 
我是否需要将一些ACAD实体转换为其他实体才能构建此集合?
 
找到直线和多段线交点的秘密是什么??
 
感谢肖特的专业帮助!
 
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:13:53 | 显示全部楼层
 
这对你有用吗
 
  1. [size=3]<CommandMethod([/size][size=3][color=#a31515][size=3][color=#a31515]"inters"[/color][/size][/color][/size][size=3], CommandFlags.UsePickSet)> _[/size]
  2. [size=3][color=#0000ff][size=3][color=#0000ff]Public [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Sub[/color][/size][/color][/size][size=3] GetInters()[/size]
  3. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] doc [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Document = acadApp.DocumentManager.MdiActiveDocument[/size]
  4. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] db [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Database = doc.Database[/size]
  5. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] ed [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Editor = doc.Editor[/size]
  6. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] tr [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Transaction = db.TransactionManager.StartTransaction[/size]
  7. [size=3][color=#0000ff][size=3][color=#0000ff]Try[/color][/size]
  8. [/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Using[/color][/size][/color][/size][size=3] (tr)[/size]
  9. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] opt [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]New[/color][/size][/color][/size][size=3] PromptEntityOptions(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Select line: "[/color][/size][/color][/size][size=3])[/size]
  10. [size=3]opt.SetRejectMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Select line only"[/color][/size][/color][/size][size=3])[/size]
  11. [size=3]opt.AllowNone = [/size][size=3][color=#0000ff][size=3][color=#0000ff]False[/color][/size]
  12. [/color][/size][size=3]opt.AllowObjectOnLockedLayer = [/size][size=3][color=#0000ff][size=3][color=#0000ff]True[/color][/size]
  13. [/color][/size][size=3]opt.AddAllowedClass([/size][size=3][color=#0000ff][size=3][color=#0000ff]GetType[/color][/size][/color][/size][size=3](Line), [/size][size=3][color=#0000ff][size=3][color=#0000ff]True[/color][/size][/color][/size][size=3])[/size]
  14. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] res [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] PromptEntityResult = ed.GetEntity(opt)[/size]
  15. [size=3][color=#0000ff][size=3][color=#0000ff]If[/color][/size][/color][/size][size=3] res.Status <> PromptStatus.OK [/size][size=3][color=#0000ff][size=3][color=#0000ff]Then [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Return[/color][/size]
  16. [/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] lid [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] ObjectId = res.ObjectId[/size]
  17. [size=3]opt.AddAllowedClass([/size][size=3][color=#0000ff][size=3][color=#0000ff]GetType[/color][/size][/color][/size][size=3](Polyline), [/size][size=3][color=#0000ff][size=3][color=#0000ff]True[/color][/size][/color][/size][size=3])[/size]
  18. [size=3]opt.SetRejectMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Select polyline only"[/color][/size][/color][/size][size=3])[/size]
  19. [size=3]opt.Message = vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Select polyline: "[/color][/size]
  20. [/color][/size][size=3]res = ed.GetEntity(opt)[/size]
  21. [size=3][color=#0000ff][size=3][color=#0000ff]If[/color][/size][/color][/size][size=3] res.Status <> PromptStatus.OK [/size][size=3][color=#0000ff][size=3][color=#0000ff]Then [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Return[/color][/size]
  22. [/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] pid [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] ObjectId = res.ObjectId[/size]
  23. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] pts [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Point3dCollection = [/size][size=3][color=#0000ff][size=3][color=#0000ff]New[/color][/size][/color][/size][size=3] Point3dCollection()[/size]
  24. [size=3]ed.WriteMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"{0} <> {1};"[/color][/size][/color][/size][size=3], lid, pid)[/size]
  25. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] enl [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Line = [/size][size=3][color=#0000ff][size=3][color=#0000ff]CType[/color][/size][/color][/size][size=3](tr.GetObject(lid, OpenMode.ForRead), Line)[/size]
  26. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] enp [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Polyline = [/size][size=3][color=#0000ff][size=3][color=#0000ff]CType[/color][/size][/color][/size][size=3](tr.GetObject(pid, OpenMode.ForRead), Polyline)[/size]
  27. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] plane [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Plane = [/size][size=3][color=#0000ff][size=3][color=#0000ff]New[/color][/size][/color][/size][size=3] Plane(ed.CurrentUserCoordinateSystem.CoordinateSystem3d.Origin, ed.CurrentUserCoordinateSystem.CoordinateSystem3d.Zaxis)[/size]
  28. [size=3]enl.IntersectWith(enp, Intersect.OnBothOperands, plane, pts, 0, 0)[/size]
  29. [size=3]ed.WriteMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Number of intersections: {0}"[/color][/size][/color][/size][size=3], pts.Count)[/size]
  30. [size=3][color=#0000ff][size=3][color=#0000ff]Dim[/color][/size][/color][/size][size=3] i [/size][size=3][color=#0000ff][size=3][color=#0000ff]As [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Integer[/color][/size][/color][/size][size=3] = 1[/size]
  31. [size=3][color=#0000ff][size=3][color=#0000ff]For [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Each[/color][/size][/color][/size][size=3] pt [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Point3d [/size][size=3][color=#0000ff][size=3][color=#0000ff]In[/color][/size][/color][/size][size=3] pts[/size]
  32. [size=3]ed.WriteMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"Point number {0}: ({1}, {2}, {3})"[/color][/size][/color][/size][size=3], i, pt.X, pt.Y, pt.Z)[/size]
  33. [size=3]i += 1[/size]
  34. [size=3][color=#0000ff][size=3][color=#0000ff]Next[/color][/size]
  35. [/color][/size][size=3]tr.Commit()[/size]
  36. [size=3][color=#0000ff][size=3][color=#0000ff]End [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Using[/color][/size]
  37. [/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Catch[/color][/size][/color][/size][size=3] ex [/size][size=3][color=#0000ff][size=3][color=#0000ff]As[/color][/size][/color][/size][size=3] Autodesk.AutoCAD.Runtime.Exception[/size]
  38. [size=3]ed.WriteMessage(vbLf & [/size][size=3][color=#a31515][size=3][color=#a31515]"{0}"[/color][/size][/color][/size][size=3], ex.Message)[/size]
  39. [size=3][color=#0000ff][size=3][color=#0000ff]End [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Try[/color][/size]
  40. [/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]End [/color][/size][/color][/size][size=3][color=#0000ff][size=3][color=#0000ff]Sub[/color][/size]
  41. [/color][/size]

 
~'J'~
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:15:29 | 显示全部楼层
我正要发布一个示例,但看到fixo比我快到了。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:23:28 | 显示全部楼层
来吧,朋友
你让我笑了
非常感谢。
 
~'J'~
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:25:10 | 显示全部楼层
 
不客气,菲索,谢谢你。
 
并向本论坛的其他贡献者表示“感谢”。愿我们在未来十年都有时间和意愿提供建议。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:32:05 | 显示全部楼层
谢谢,但我无法将此代码用于我的系统。
 
如果我们从头开始,我想我们可能会发现问题。。。
 
什么会导致下面的代码段生成“找不到指定的模块”消息
 
作为Autodesk的公共交点。AutoCAD。几何学点3DCollection
 
 
 
 
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:33:17 | 显示全部楼层
你把这个包括在其余的进口货里了吗?
 
导入Autodesk。AutoCAD。几何学
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:09 , Processed in 0.465199 second(s), 72 queries .

© 2020-2025 乐筑天下

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