乐筑天下

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

从WCS中提供的点集创建新UCS

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-1-5 21:06:42 | 显示全部楼层 |阅读模式
好吧…我必须承认我被难住了…
用户协调系统。Add需要4个参数,原点、xAxis法线、yAxis法线和UCS名称…
现在…当我在AutoCAD 2000上使用提供的一组点运行样例代码时,我收到了一个新的ucs…然而,在所有其他版本中,我收到一个错误,即Y轴不平行于Z轴。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-1-5 21:22:57 | 显示全部楼层
那是#039;因为参数是向量,而不是点。。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-5 23:08:55 | 显示全部楼层
大多数Ucs问题都是由原点引起的。您必须先创建Ucs,然后设置原点。即原点为0,0,0设置ucs;然后更改原点
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-1-5 23:13:04 | 显示全部楼层
这里是#039;如何从VLisp中的2个点计算向量,只需从目标中扣除原点;我把VBA翻译留给你
[代码0;
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-5 23:14:20 | 显示全部楼层
比如说:
  1. Dim wcs As AcadUCS
  2. Dim origin(2) As Double, xVector(2) As Double, yVector(2) As Double
  3. origin(0) = 0: origin(1) = 0: origin(2) = 0
  4. xVector(0) = 1: xVector(1) = 0: xVector(2) = 0
  5. yVector(0) = 0: yVector(1) = 1: yVector(2) = 0
  6. Set wcs = ThisDrawing.UserCoordinateSystems.Add(origin, xVector, yVector, "WCS")
是否可以在AutoCAD 2000中使用,但不能在任何更高版本中使用?
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-1-5 23:41:18 | 显示全部楼层
Sub u()
将wcs作为AcadUCS进行调整
将原点(2)调整为Double,将xVector(2)设置为Double,将yVector(1)设置为Double,并将yVector(2)作为Double。将原点(0)设置为5:原点(1)=7:原点(2)=0。设置wcs=ThisDrawing.UserCoordinates系统。添加(原点、X向量、Y向量、“WCS”)
结束Sub
此错误;其中为Chuck#039;s习惯了。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-5 23:52:08 | 显示全部楼层
Bryco,我记得VLisp ActiveX的同一个问题导致了这个问题
  1. ;;
  2. ;;;-------------------------------------------------------------
  3. ;;;-------------------------------------------------------------
  4. ;;
  5. (defun KDUB:UCS:BlackBox (NewUcsName Origin XAxis YAxis Activate / objUCS)
  6.   ;;
  7.   ;;    by Kerry Brown  2004.Feb.11
  8.   ;;    Revised kwb  2005.Jul.02
  9.   ;;    Create a Named UCS and Optionally Activate it.
  10.   ;|
  11. Required globals                        : g:activedoc, g:ucss
  12. Required dependancies : nil
  13. Parameters  :-
  14.         NewUcsName      :
  15.         Origin                  :                    
  16.         XAxis                           :
  17.         YAxis                           :
  18.         Activate                : Set as ActiveUCS
  19. Returns :   or nil.
  20. |;
  21. ;;;;----------------
  22.   (or NewUcsName (setq NewUcsName "TempUCS"))
  23.   (or Origin (setq Origin (getvar "ucsorg")))
  24.   (or XAxis (setq XAxis (getvar "ucsxdir")))
  25.   (or YAxis (setq YAxis (getvar "ucsydir")))
  26.   ;;
  27.   (setq objUCS (vla-add (kdub:iacaducss)
  28.                         (vlax-3d-point '(0.0 0.0 0.0)) ;origin
  29.                         (vlax-3d-point XAxis)          ;x-axis
  30.                         (vlax-3d-point YAxis)          ;y-axis
  31.                         NewUcsName
  32.                )
  33.   )
  34.   (vla-put-origin objUCS (vlax-3d-point Origin))
  35.   (if Activate
  36.     (vla-put-activeucs (kdub:iacaddocument) objUCS)
  37.   )
  38.   objUCS
  39. )
  40. ;;
  41. ;;;-------------------------------------------------------------
  42. ;;;-------------------------------------------------------------
引用自
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-1-6 00:02:30 | 显示全部楼层
如果我读对了,原点在最后
克里说'这很有趣,因为我认为这是一个vba问题,也就是说vba有点像你父亲在双打上的表现,但现在你已经证明一切都结束了。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-6 00:34:28 | 显示全部楼层
是的,布莱科,起源在最后;it#039;这是使用ActiveX的一个条件。这就是方法的工作方式;
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 06:01 , Processed in 1.623238 second(s), 70 queries .

© 2020-2025 乐筑天下

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