找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: liujianzhong88

[求助] Translatecoordinates用法求助

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-5-7 23:31:39 | 显示全部楼层
liujianzhong88 发表于 2018-5-7 22:15
我按您的办法试了,WCS下的坐标还是(0,0,0,)UCS下的坐标(0,0,0)我是直接赋值的,
我查了郑立楷 ...

你的VBA代码是帮助里面的? 你用的CAD版本是什么,下面是我在2019的VBA里面运行的帮助的代码,结果如下

变换了

搜狗截图20180507233255.gif

搜狗截图20180507233354.gif


---------------------------
TranslateCoordinates Example
---------------------------
The point has the following coordinates:

WCS: 1090.86014478392, 1980.06009680671, 2

UCS: 1088.86014478392, 1978.06009680671, 0
---------------------------
确定   
---------------------------


  1. Sub Example_TranslateCoordinates()
  2.     ' This example creates a UCS with an origin at 2, 2, 2.
  3.     ' Next, a point is entered by the user. The WCS and UCS
  4.     ' coordinates of that point are output in a Msgbox.

  5.     AppActivate ThisDrawing.Application.Caption

  6.     ' Create a UCS named "New_UCS" in current drawing
  7.     Dim ucsObj As AcadUCS
  8.     Dim origin(0 To 2) As Double
  9.     Dim xAxisPnt(0 To 2) As Double
  10.     Dim yAxisPnt(0 To 2) As Double

  11.     ' Define the UCS
  12.     origin(0) = 2#: origin(1) = 2#: origin(2) = 2#
  13.     xAxisPnt(0) = 5#: xAxisPnt(1) = 2#: xAxisPnt(2) = 2#
  14.     yAxisPnt(0) = 2#: yAxisPnt(1) = 6#: yAxisPnt(2) = 2#

  15.     ' Add the UCS to the UserCoordinatesSystems collection
  16.     Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(origin, xAxisPnt, yAxisPnt, "New_UCS")
  17.     ThisDrawing.ActiveUCS = ucsObj

  18.     ' Get the active viewport and make sure the UCS icon is on
  19.     Dim viewportObj As AcadViewport
  20.     Set viewportObj = ThisDrawing.ActiveViewport
  21.     viewportObj.UCSIconOn = True
  22.     viewportObj.UCSIconAtOrigin = True
  23.     ThisDrawing.ActiveViewport = viewportObj

  24.     ' Have the user enter a point
  25.     Dim pointWCS As Variant
  26.     pointWCS = ThisDrawing.Utility.GetPoint(, "Enter a point to translate:")

  27.     ' Translate the point into UCS coordinates
  28.     Dim pointUCS As Variant
  29.     pointUCS = ThisDrawing.Utility.TranslateCoordinates(pointWCS, acWorld, acUCS, False)

  30.     ' Display the coordinates of the point
  31.     MsgBox "The point has the following coordinates:" & vbCrLf & _
  32.            "WCS: " & pointWCS(0) & ", " & pointWCS(1) & ", " & pointWCS(2) & vbCrLf & _
  33.            "UCS: " & pointUCS(0) & ", " & pointUCS(1) & ", " & pointUCS(2), , "TranslateCoordinates Example"

  34. End Sub



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

使用道具 举报

 楼主| 发表于 2018-5-8 00:50:38 | 显示全部楼层
marting 发表于 2018-5-7 23:18
VBA资源那么少,为什么不改下其他语言呢,VLISP完全能用你上面的代码。下面是帮助手册的例子:

大哥,我现在的问题是,我是在EXCEL 上做的软件,现在是用EXCEL来调CAD画图的,CAD算出的点数据,我还要在调回到EXCEL里保存的。
EXCEL 好像不支持VLISP啊,望解答,谢谢 大神!

点评

谁说VLISP不支持EXCEL,你用EXCEL 搜索论坛,一大堆函数和代码。  详情 回复 发表于 2018-5-8 02:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-8 02:40:17 | 显示全部楼层
liujianzhong88 发表于 2018-5-8 00:50
大哥,我现在的问题是,我是在EXCEL 上做的软件,现在是用EXCEL来调CAD画图的,CAD算出的点数据,我还要 ...

谁说VLISP不支持EXCEL,你用EXCEL 搜索论坛,一大堆函数和代码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 09:45:29 | 显示全部楼层
两位大神:
   求帮忙!

我发现问题了,我的代码直接在CAD上运行,结果是正确的,Translatecoordinates是有作用的,关键的是,我的代码是要在EXCEL上运行,由EXCEL来调用CAD 画图的,再将图的坐标点反馈到EXCEL中保存,可以同样的代码,在EXCEL中运行,TranslateCoordinates就没有作用,求解答!

点评

点的变换,无非就是矩阵的变换,你不用CAD ACTIVEX提供给你的Translate,自己可以用矩阵去变换点,可以 搜索 矩阵,看看。  详情 回复 发表于 2018-5-8 10:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-8 10:14:40 | 显示全部楼层
liujianzhong88 发表于 2018-5-8 09:45
两位大神:
   求帮忙!

点的变换,无非就是矩阵的变换,你不用CAD ACTIVEX提供给你的Translate,自己可以用矩阵去变换点,可以 搜索 矩阵,看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-8 21:04:05 | 显示全部楼层
newer 发表于 2018-5-8 10:14
点的变换,无非就是矩阵的变换,你不用CAD ACTIVEX提供给你的Translate,自己可以用矩阵去变换点,可以  ...

有道理,谢谢,Translatecoordinates 用不了

我就获得的矩阵坐标点和我点的坐标点 相加减 谢谢谢谢谢

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-27 12:04 , Processed in 0.208133 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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