找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 637|回复: 3

[求助] [求助]:关于EXCEL与CAD互用的问题

[复制链接]
发表于 2005-5-26 23:53:29 | 显示全部楼层 |阅读模式

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

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

×
本人想要一个小软件:

功能:将EXCEL计算出来的一些点的坐标(X,Y),在2004中连续画直线。

具体特点:20044打开的图形中指定一个基准点,有绝对坐标。而在EXCEL中给这个点一个坐标(X,Y),计算出一些点相对于这个点坐标的相对坐标,然后自动画线。

或者简单情况:将EXCEL计算出来的一些点的绝对坐标(X,Y),在2004中连续画直线。也就是说,画直线时不再需要将EXCEL计算的数据手工输入,提高效率。最好修改EXCEL数据时,能联动,不再重新打开2004文件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-27 09:36:12 | 显示全部楼层
我的问题刚好相反.将已有的DWG文件中的线段输出成坐标格式的文件,不知您能否解决?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-27 17:24:13 | 显示全部楼层
最初由 cy04gjl 发布
[B]我的问题刚好相反.将已有的DWG文件中的线段输出成坐标格式的文件,不知您能否解决? [/B]



你的问题似乎比较容易啊,我以前是用c语言变的程序从dxf文件读出来。很简单的。


我想应该用vba来编应该更是很容易的,可惜,我vba用得不好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 22:22:05 | 显示全部楼层
最初由 cy04gjl 发布
[B]我的问题刚好相反.将已有的DWG文件中的线段输出成坐标格式的文件,不知您能否解决? [/B]

在其它网站看到的,看合不合用??
下面的代码由用户在ACAD图形中选择对象并将对象部分属性写入EXCEL文档。
Sub WriteExcel()
  Dim ExcelApp As New Excel.Application
  Dim ExcelWkbk As Excel.Workbook
  Set ExcelWkbk = ExcelApp.Workbooks.Add
  Dim sel As AcadSelectionSet
  Dim i As Integer
  i = 2
  On Error Resume Next
  Set sel = ThisDrawing.SelectionSets.Add("ssel")
  If Err Then
    Err.Clear
    Set sel = ThisDrawing.SelectionSets.Item("ssel")
  End If
  On Error GoTo 0
  sel.SelectOnScreen
  Dim Ent As AcadEntity
  Dim pt1 As Variant, pt2 As Variant
  MsgBox ExcelWkbk.Name
  With ExcelWkbk.Worksheets("sheet1")
  For Each Ent In sel
    Select Case UCase(Ent.ObjectName)
      Case "ACDBLINE":
        .Range("A" & i) = "直线"
        pt1 = Ent.StartPoint
        pt2 = Ent.EndPoint
        .Range("B" & i) = pt1(0)
        .Range("c" & i) = pt1(1)
        .Range("D" & i) = pt2(0)
        .Range("E" & i) = pt2(1)
        i = i + 1
      Case "ACDBCIRCLE":
        .Range("A" & i) = "圆"
        pt1 = Ent.Center
        .Range("B" & i) = pt1(0)
        .Range("C" & i) = pt1(1)
        .Range("D" & i) = Ent.Radius
        i = i + 1
      Case Else:
    End Select
  Next Ent
  End With
  ExcelApp.ActiveWorkbook.SaveAs "d:\book1.xls"
  ExcelApp.Workbooks.Close
  ExcelApp.Quit
  sel.Delete
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 07:00 , Processed in 0.239213 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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