乐筑天下

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

[编程交流] Lisp沿po旋转块

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 20:56:28 | 显示全部楼层
谢谢比格尔。我在办公室的时候会查一下。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 21:00:44 | 显示全部楼层
谢谢Irm,但我想使用Lisp或其他代码自动化这个过程。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:01:49 | 显示全部楼层
理解VBA,看看它是如何工作的,只需要使用VLISP进行基本的重写,VLISP与etc有非常紧密的语法交叉,这就是它的基本工作原理。我的名单上有它重做,但由于它的工作和家伙们很高兴它在底部。
 
现在只需更改块名和2.8,即c-c距离。
回复

使用道具 举报

30

主题

125

帖子

30

银币

后起之秀

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

铜币
218
发表于 2022-7-5 21:08:15 | 显示全部楼层
是你需要的吗
https://apps.exchange.autodesk.com/ACD/en/Detail/Index?id=appstore.exchange.autodesk.com:rotationblocksattributesonpolylinev2_windows32and64:en
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 21:09:52 | 显示全部楼层
比加尔,
 
我尝试加载您的dvb文件,但无法在ppload窗口中加载。我看不到它在运行。有什么想法吗?
 
谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:14:40 | 显示全部楼层
检查dvb文件的路径,我必须编辑上面的行,因为我在发布时更改了它。如果目录名中有空格,请尝试类似p:\\my vba\\access-rev2的操作。dvb。
 
否则只需执行vbaman并加载access-rev2,然后您就可以执行(vl vbarun“draw\u vehicle”)
 
如果单击Access-rev2,然后选择Visual basic编辑器,它将显示代码,车轮之间的间距为3.05。请参见下面的rde,将其更改为间距并重新创建块保持架。
 
  1. Sub draw_vehicle()
  2. Dim CAR As String
  3. Dim arcobj As AcadArc
  4. Dim oPoly As AcadEntity
  5. Dim blkobj As AcadEntity
  6. Dim retVal As Variant
  7. Dim snapPt As Variant
  8. Dim oCoords As Variant
  9. Dim blpnt1() As Variant
  10. ReDim blpnt1(100)
  11. Dim blpnt2() As Variant
  12. ReDim blpnt2(100)
  13. Dim vertPt(0 To 2) As Double
  14. Dim Pt1(0 To 2) As Double
  15. Dim Pt2(0 To 2) As Double
  16. Dim newPt(0 To 2) As Double
  17. Dim iCnt, w, x, y, z As Integer
  18. Dim cRad, interval, blkangle As Double
  19. Dim circObj As AcadCircle
  20. Dim lineObj As AcadLine
  21. On Error GoTo Something_Wrong
  22. If ThisDrawing.ActiveSpace = acModelSpace Then
  23. Set Thisspace = ThisDrawing.ModelSpace
  24. Else: Set Thisspace = ThisDrawing.PaperSpace
  25. End If
  26. For Each Item In ThisDrawing.Blocks
  27. If Item.Name = "holden" Then GoTo continue_on
  28. Next Item
  29. ' insert holden block
  30. InsertBlock "p:\Autodesk\vba\holdencar.dwg", 0
  31. continue_on:
  32. w = 1
  33. ThisDrawing.Utility.GetEntity oPoly, snapPt, vbCr & "Select polyline :"
  34. If oPoly.ObjectName = "AcDbPolyline" Then
  35. oCoords = oPoly.Coordinates
  36. Else: MsgBox "This object is not a polyline! Please do again"
  37. Exit Sub
  38. End If
  39. interval = CDbl(InputBox("Enter interval:", , 1#))
  40. If interval < 1 Then
  41. interval = 1
  42. End If
  43. For iCnt = 0 To UBound(oCoords) - 2 Step 2
  44. Pt1(0) = oCoords(iCnt): Pt1(1) = oCoords(iCnt + 1): Pt1(2) = 0#
  45. newPt(0) = Pt1(0)
  46. newPt(1) = Pt1(1)
  47. newPt(2) = 0#
  48. iCnt = iCnt + 2
  49. Pt2(0) = oCoords(iCnt): Pt2(1) = oCoords(iCnt + 1): Pt2(2) = 0#
  50. x = (Pt1(0) - Pt2(0)) / interval
  51. y = (Pt1(1) - Pt2(1)) / interval
  52. 'reset back 2 values
  53. iCnt = iCnt - 2
  54. cRad = [color=red]3.05[/color]
  55. startang = 4.71239
  56. endang = 1.570796
  57. CAR = "HOLDEN"
  58. For z = 1 To interval
  59. vertPt(0) = newPt(0) - x
  60. vertPt(1) = newPt(1) - y
  61. vertPt(2) = 0#
  62. 'blpnt1(w) = vertPt
  63. 'Set arcobj = ThisDrawing.ModelSpace.AddArc(vertPt, cRad, endang, startang)
  64. Set arcobj = Thisspace.AddArc(vertPt, cRad, endang, startang)
  65. retval2 = arcobj.IntersectWith(oPoly, acExtendOtherEntity)
  66. arcobj.Delete
  67. Set arcobj = Nothing
  68. blkangle = ThisDrawing.Utility.AngleFromXAxis(retval2, vertPt)
  69. 'Set blkobj = ThisDrawing.ModelSpace.InsertBlock(vertPt, CAR, 1#, 1#, 1#, blkangle)
  70. Set blkobj = Thisspace.InsertBlock(vertPt, CAR, 1#, 1#, 1#, blkangle)
  71. Set blkobj = Nothing
  72. w = w + 1
  73. newPt(0) = newPt(0) - x
  74. newPt(1) = newPt(1) - y
  75. Next z
  76. Next iCnt
  77. GoTo Exit_out
  78. Something_Wrong:
  79. MsgBox Err.Description
  80. Exit_out:
  81. End Sub
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 21:18:12 | 显示全部楼层
嗨,比格尔,
 
我从李那里找到了一些非常接近我想要的东西。这是他的对象对齐命令。我唯一的问题是它没有将块与多段线对齐(请参见附图)。可以修改此选项(经Leemac允许)以将夹点从块向下旋转到多段线上吗?
 
谢谢
 
ObjectAlignV1-3。lsp
211942p6ahsa2cn7anscsx.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:19:46 | 显示全部楼层
手动在第二个点的另一个点绘制圆心,并旋转块以适应vba的操作。还是不知道为什么你不能去工作,试试霍尔顿。图纸
 
有一天会重写到VLISP。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:52 , Processed in 0.702869 second(s), 68 queries .

© 2020-2025 乐筑天下

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