明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2728|回复: 16

网上不一定有能人啊呀!

  [复制链接]
发表于 2003-8-6 00:51:00 | 显示全部楼层 |阅读模式
我有一个问题,就是"在AutoCAD中用VBA或Visual LISP中写一个程式,能在AUTOCAD中选中一个封闭的多义线(在封闭的多义线中有直线,倒圆角,圆弧,角度)按逆时针找出每一个2D坐标,写在一个文本文件里!
我在网上坛子里问了三个月了,十几个人说来说去,都没搞定.
发表于 2003-8-6 07:36:00 | 显示全部楼层
不知以下程序是否可用:
  1. Sub oef()
  2.     Dim pnt As Variant
  3.     Dim ent1 As AcadLWPolyline
  4.     Dim ent2 As AcadLWPolyline
  5.     Dim ents As Variant
  6.     Dim pnts As Variant
  7.     Dim cnt As Integer
  8.     Dim cor() As Double
  9.     Dim i As Integer
  10.     Dim txt As String
  11.     ThisDrawing.Utility.GetEntity ent1, pnt
  12.     pnts = ent1.Coordinates
  13.     cnt = (UBound(pnts) + 1) / 2
  14.     Debug.Print cnt
  15.     ReDim cor(1, cnt) As Double
  16.     For i = 0 To UBound(pnts) Step 2
  17.         cor(0, i / 2) = ent1.Coordinates(i)
  18.         cor(1, i / 2) = ent1.Coordinates(i + 1)
  19.     Next
  20.     ents = ent1.Offset(10)
  21.     Set ent2 = ents(0)
  22.     If ent2.Area > ent1.Area Then
  23.         txt = "逆时针方向,其逆时针坐标如下:"
  24.         For i = 0 To UBound(cor, 2) - 1
  25.             txt = txt & vbCr & cor(0, i) & "," & cor(1, i)
  26.         Next
  27.     Else
  28.          txt = "线为顺时针方向,已经转换为逆时针的坐标如下:"
  29.         For i = UBound(cor, 2) - 1 To 0 Step -1
  30.             txt = txt & vbCr & cor(0, i) & "," & cor(1, i)
  31.         Next
  32.     End If
  33.     For i = 0 To UBound(ents)
  34.         ents(i).Delete
  35.     Next
  36.     MsgBox txt
  37.         
  38. End Sub
 楼主| 发表于 2003-8-6 11:04:00 | 显示全部楼层
好像你只能找到一条直线的两个点,不能找多个点,比如下图的所有直线,倒圆角,圆弧,角度的点,就没有办法!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-8-6 11:31:00 | 显示全部楼层
运行你那代码出错:
     Run-time error ‘-2147418113(8000ffff):
  Method ‘offset’ of object ‘iacadlwpolyline’failed
经调试出错代码为;
ents = ent1.Offset(10)
怎么办?????
发表于 2003-8-6 13:36:00 | 显示全部楼层
惨了
发表于 2003-8-6 15:32:00 | 显示全部楼层
注意你的条件是:
选中一个封闭的多义线(在封闭的多义线中有直线,倒圆角,圆弧,角度)
所以程序也只考虑到你所说的多义线的情况。
 楼主| 发表于 2003-8-6 15:55:00 | 显示全部楼层
我那是封闭的多义线啊!只是画好了,用PE命令连接成一条啊!
发表于 2003-8-6 17:36:00 | 显示全部楼层
我按照你所说的方法画线,圆角,再PE成多段线,但没有你所说的问题:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-8-7 09:32:00 | 显示全部楼层
请问你用的AUTOCAD是什么版本?
 楼主| 发表于 2003-8-7 09:40:00 | 显示全部楼层
可以了,谢谢!
但是能不能在直线,圆角,倒角的坐标前,作一个标识,来标识是线或是圆呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 06:46 , Processed in 0.224527 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表