乐筑天下

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

[编程交流] 如何添加带填充的多段线

[复制链接]

2

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:57:34 | 显示全部楼层 |阅读模式
我所做的是在屏幕上选取一条多段线,然后对其边缘进行圆角,并将其添加到块中。我了解了如何对边进行圆角,但不知道如何将其添加到具有圆角边的块中:/
 
 
  1. Public Sub bar()
  2. 'Checking for existing blocks
  3. Dim objBlock As AcadBlock
  4. Dim strBlockList As String
  5. Dim n As Integer
  6.    n = -3
  7.    strBlockList = "List of blocks: "
  8. For Each objBlock In ThisDrawing.Blocks
  9.    n = n + 1
  10.    strBlockList = strBlockList & vbCr & objBlock.Name
  11. Next
  12.    MsgBox strBlockList
  13.   ' MsgBox n
  14. '**********copied from [url="http://www.cadtutor.net/forum/member.php?u=210"]fixo[/url]
  15. 'FILLET
  16. Dim oPline As AcadLWPolyline
  17. Dim varPt As Variant
  18. On Error GoTo Error_Trapp
  19. ThisDrawing.Utility.GetEntity oPline, varPt, "Select polyline"
  20. If Err Then
  21. Err.Clear
  22. Exit Sub
  23. ElseIf Not TypeOf oPline Is AcadLWPolyline Then
  24. MsgBox "This is not a LightWeightPolyline"
  25. Else
  26. Dim filrad As Double
  27. filrad = 10 ' CDbl(InputBox(vbCr & vbCr & "Specify fillet radii: ", "Filleting LWPolyline", "10,0"))
  28. ThisDrawing.SetVariable "FILLETRAD", filrad
  29. Dim commStr As String
  30. commStr = "_FILLET _P " & _
  31. "(handent " & Chr(34) & oPline.Handle & Chr(34) & ")" & vbCr ' I have to admit I don't understand this row
  32. ThisDrawing.SendCommand commStr
  33. End If
  34. Error_Trapp:
  35. If Err.Number = 13 Then
  36. MsgBox "This is not a polyline" & vbCr _
  37. & "Error number: " & Err.Number & vbCr & Err.Description
  38. End If
  39. '''*********^^^THIS IS NOT MINE. I've copied it form some board and it works
  40. 'adding LWPolyline to block
  41. Dim Cordinat As Variant
  42.    Cordinat = oPline.Coordinates
  43. Dim indeks As Integer
  44. Dim UpperBoundery As Integer
  45. Dim LowerBoundery As Integer
  46. UpperBoundery = UBound(Cordinat)
  47. LowerBoundery = LBound(Cordinat)
  48. Do
  49.    If l > UpperBoundery Then
  50.        Exit Do
  51.    End If
  52. 'MsgBox Cordinat(l)
  53. l = l + 1
  54. Loop
  55. Dim objBlockName As String
  56. Dim dblOrigin(2) As Double
  57. objBlockName = "bar" & n
  58.    
  59. Set objBlock = ThisDrawing.Blocks.Add(varPt, objBlockName)
  60.    objBlock.AddLightWeightPolyline Cordinat
  61.   
  62. End Sub
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 13:40:49 | 显示全部楼层
嗨,亲爱的Rojek
请转到此链接并下载所需的工具:
 
http://www.visiblevisual.com/index.php/AutoCad-VB/VBA/database-driven-block-manager.html
 
圣诞快乐,祝你度过愉快的一天
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:28 , Processed in 0.713305 second(s), 56 queries .

© 2020-2025 乐筑天下

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