明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2770|回复: 6

如何自定义UCS坐标的表达方式?

[复制链接]
发表于 2009-7-21 20:03 | 显示全部楼层 |阅读模式
如何建立自定义表达方式的UCS. 例如,想建立这样一个UCS, 原点在WCS的原点上,Y、Z方向按WCS表述,X方向按肋位号表示。如:肋位为0-100,每档肋位间距500mm,这样,相对于WCS的点(6000,1200,3000)按此UCS方法表示就是(FR12,1200,3000).

我的问题就是能否建立上述坐标系,可以自定义坐标的表达方式。如在画直线命令时,以(FR12,1200,3000)的形式输入点坐标,而不是(6000,1200,3000)。不知道能否实现。望达者解惑,等待...
发表于 2009-7-21 20:42 | 显示全部楼层

没想到太好的方法

可以尝试用事件处理,但可能很难实现

或者用Lisp函数处理

比如先声明一个Lisp函数FR计算X坐标

(list (FR 12) 1200 3000) 

或者定义一个Lisp函数,返回值是点坐标

调用

(mylispfunc "fr12,1200,3000")

 楼主| 发表于 2009-7-22 13:06 | 显示全部楼层
如果是lisp函数,就无法在所有命令中使用,我的意思是转换坐标输入表达方式,所以要内嵌入所有命令中。
发表于 2009-7-22 15:38 | 显示全部楼层
hzh2000发表于2009-7-22 13:06:00如果是lisp函数,就无法在所有命令中使用

你试过么?

 楼主| 发表于 2009-7-23 12:49 | 显示全部楼层

自己写的程序当然可以调用这个自定义函数,但是,其他程序如ACAD命令、其他应用程序怎么去调用?除非每个命令重新定义,这个不现实。

发表于 2009-7-23 15:50 | 显示全部楼层

命令: _line 指定第一点: (list 0 0 0)
(0 0 0)

指定下一点或 [放弃(U)]: (list 100 100 0)
(100 100 0)

指定下一点或 [放弃(U)]:

 楼主| 发表于 2009-7-23 19:54 | 显示全部楼层

试过了,选用的是先定义一个函数(defun fr( x y z / ))的形式,如下:

命令: _line 指定第一点: (fr 0 0 0)
(0 0 0)

指定下一点或 [放弃(U)]: (fr 5 100 0)
(3000 100 0)

指定下一点或 [放弃(U)]:

不过需要输括号,与点坐标的输入方式不一样,有点不方便。最好能变成如下方式就方便了:

命令: _line 指定第一点: fr 0,0,0

(0 0 0)

指定下一点或 [放弃(U)]: fr 5,100,0
(3000 100 0)

指定下一点或 [放弃(U)]:

谢谢版主指点。

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

本版积分规则

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

GMT+8, 2024-5-4 06:58 , Processed in 0.187448 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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