×
热门分类
微信扫码登陆

QQ登录

只需一步,快速开始

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即加入SketchUp吧! 微信扫码登陆

x
1、首先,用那个BREAKALL的LISP在AUTOCAD2010加载后,运行QINGLI显示未知命令!郁闷啊!!
共享一下 breakall lisp.rar (295.51 KB, 下载次数: 303) ,虽然我用不了。
有AUTOCAD2010能用的么?还是我哪里设置的不对?


2、然后,今天在网上找了个VB宏脚本,也共享给大家。


Sub 交点处等间距打断()
  On Error Resume Next
  Dim ssetObj As AcadSelectionSet
  '创建选择集
  Set ssetObj = ThisDrawing.SelectionSets("test")
  If Err Then
      Err.Clear
      Set ssetObj = ThisDrawing.SelectionSets.Add("test")
  End If
  ssetObj.Clear '首先清空选择集
  ssetObj.Select acSelectionSetAll
  
  Dim jianju As Double
  jianju = ThisDrawing.Utility.GetReal("指定打断间距:")
  If Err Then Exit Sub
  
'  取得交点
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Dim pt As Variant
  Dim points() As Double
  Dim N As Long
  N = 0
  For i = 0 To ssetObj.Count - 2
    For j = i + 1 To ssetObj.Count - 1
      pt = ssetObj(i).IntersectWith(ssetObj(j), acExtendNone)
      If UBound(pt) >= 2 Then
        ReDim Preserve points(N + UBound(pt)) '逐步定义数组,需要关键字
        For k = 0 To UBound(pt)
          points(N + k) = pt(k)
        Next
        N = N + UBound(pt) + 1
      End If
    Next
  Next
  
  '交点处打断
  Dim bpt(0 To 2) As Double
  Dim circleObj As AcadCircle
  Dim cpt As Variant
  Dim cpt1(2) As Double
  Dim cpt2(2) As Double
  Dim ss As AcadSelectionSet
  Set ss = ThisDrawing.SelectionSets("dog")
  If Err Then
      Err.Clear
      Set ss = ThisDrawing.SelectionSets.Add("dog")
  End If
  For i = 0 To UBound(points) Step 3
    bpt(0) = points(i)
    bpt(1) = points(i + 1)
    bpt(2) = points(i + 2)
    ss.Clear
    SelectAtPoint ss, bpt
    Set circleObj = ThisDrawing.ModelSpace.AddCircle(bpt, jianju / 2)
    For k = 0 To ss.Count - 1
      cpt = ss(k).IntersectWith(circleObj, acExtendNone)
      If UBound(cpt) = 5 Then
        cpt1(0) = cpt(0)
        cpt1(1) = cpt(1)
        cpt1(2) = cpt(2)
        cpt2(0) = cpt(3)
        cpt2(1) = cpt(4)
        cpt2(2) = cpt(5)
        ThisDrawing.SendCommand "_break" & vbCr & axEnt2lspEnt(ss(k)) & vbCr & axPoint2lspPoint(cpt1) & vbCr & axPoint2lspPoint(cpt2) & vbCr
      End If
    Next
    circleObj.Delete
  Next
End Sub

' 选择通过某点的实体
Public Sub SelectAtPoint(ByRef SSet As AcadSelectionSet, ByVal pt As Variant)
    ' 构造一个以pt为中心的小矩形作为选择范围
    Dim pt1 As Variant, pt2 As Variant
    Dim objUtility As Object
    Set objUtility = ThisDrawing.Utility    ' 必须使用后期绑定
    objUtility.CreateTypedArray pt1, vbDouble, pt(0) - 0.0001, pt(1) - 0.0001, pt(2)
    objUtility.CreateTypedArray pt2, vbDouble, pt(0) + 0.0001, pt(1) + 0.0001, pt(2)
   
    SSet.Select acSelectionSetCrossing, pt1, pt2
End Sub
' 转换点的函数
Public Function axPoint2lspPoint(ByVal pnt As Variant) As String
    axPoint2lspPoint = pnt(0) & "," & pnt(1) & "," & pnt(2)
End Function
' 转换图元函数
Public Function axEnt2lspEnt(ByVal entObj As AcadEntity) As String
    Dim entHandle As String
    entHandle = entObj.Handle
    axEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function

但是这个有几个问题,圆不能打断,打断间距不能为0,又是个比较郁闷的。
有达人会修改成在原点打断么?
本贴附件下载

breakall lisp.rar

295.51 KB , 吧币: 200 , 请登陆后再进行下载!

精彩评论

文明上网理性发言、请文明用语

58

主题

900

帖子

2428

红宝石

技术版主

Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40

红宝石
2428

核心会员精华帖王宝石收藏家热心助人奖忠实粉丝优秀版主优秀创意奖优秀点子奖优秀技术奖2012龙年春节团拜纪念邮

QQ
l64631778 2012-5-4 12:38:49


用lsp来执行全局交点打断,是一件很蛋疼的事情,lsp执行的效率还是有所欠缺的,建议使用su的模型交错来打断交点,毕竟是c的
而且没有图元的限制,只要相交就能打断

0

主题

59

帖子

1

红宝石

SU入学(等级1)

Rank: 1

红宝石
1
debugchen 2012-5-5 14:12:39
把breakall.lsp修改了一下,替换掉原来的文件即可; 命令更本不是qingli,而是ba;只需加载xyp_lib.VLX、XYPLib.VLX的其中一个就行。


breakall.rar

241 Bytes, 下载次数: 147, 下载积分: 吧币 -200 个

修改后的breakall.lsp

0

主题

59

帖子

1

红宝石

SU入学(等级1)

Rank: 1

红宝石
1
debugchen 2012-5-5 14:18:05
cad的版本一般对lsp程序没有影响!

9

主题

163

帖子

1

红宝石

SU入学(等级1)

Rank: 1

红宝石
1
fzhhx 2012-5-5 23:18:27
谢谢楼上和楼上的楼上{:soso_e181:}

10

主题

400

帖子

50

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
50
candy_wm 2012-10-31 14:33:49
下载下来试试看 不知道有没有用这招成功的前辈们指导一下啊

0

主题

20

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
逐渐靠谱 2012-10-31 17:47:33
谢谢楼主

0

主题

23

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
蜗牛哥 2012-11-13 16:20:23
以下载使用,感谢楼主,breakall

0

主题

1

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
hualei870829 2012-11-13 22:57:16
各种方法都试了,还是不行,输入ba显示未知命令,不知道怎么回事

0

主题

40

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
SileN 2012-11-14 11:12:15
谢谢楼主

2

主题

149

帖子

5

红宝石

SU入学(等级1)

Rank: 1

红宝石
5

积极讨论奖

QQ
□Broverith. 2013-1-27 13:15:07
好东西 谢谢!

0

主题

3

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
木子lr11 2013-7-24 14:58:11
为什么我下载不了

2

主题

14

帖子

1

红宝石

SU入学(等级1)

Rank: 1

红宝石
1
taibi 2013-10-9 23:16:41
找了好久了 谢谢

0

主题

2

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
Evan 2013-10-23 09:44:10
好东西!

2

主题

8

帖子

4

红宝石

SU入学(等级1)

Rank: 1

红宝石
4

积极讨论奖

102690596 2013-12-11 19:21:18
不能下载啊。。。。

0

主题

52

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0

社区微博达人

junchang1118 2014-1-9 17:34:34
谢谢楼主

9

主题

3441

帖子

176

红宝石

SU有道(等级7)

Rank: 7Rank: 7Rank: 7

红宝石
176

共享精神奖忠实粉丝

cooice 2015-10-8 09:04:08
不明觉厉啊,这问题困扰我很久

1

主题

10

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2
tb0367851 2015-10-11 17:26:22
下载不了怎么办啊啊啊

0

主题

21

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2

社区微博达人

lia339 2016-7-5 16:47:48
jifejifen111

0

主题

1

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
lmeir 2018-6-23 17:59:30
下载一下
高级模式
您需要登录后才可以回帖 登录 | 立即加入SketchUp吧! 微信扫码登陆

本版积分规则

fzhhx

SU入学(等级1)

  • 主题

    9

  • 吧币

    2400

  • 红宝石

    1

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们/小黑屋/手机app/国土人/SketchUp吧 /京ICP备16008035号/