如何自定义UCS坐标的表达方式?
<font face="宋体" size="2">如何建立自定义表达方式的UCS. 例如,想建立这样一个UCS, 原点在WCS的原点上,Y、Z方向按WCS表述,X方向按肋位号表示。如:肋位为0-100,每档肋位间距500mm,这样,相对于WCS的点(6000,1200,3000)按此UCS方法表示就是(FR12,1200,3000).<br/><br/>我的问题就是能否建立上述坐标系,可以自定义坐标的表达方式。如在画直线命令时,以(FR12,1200,3000)的形式输入点坐标,而不是(6000,1200,3000)。不知道能否实现。望达者解惑,等待...</font> <p>没想到太好的方法</p><p>可以尝试用事件处理,但可能很难实现</p><p>或者用Lisp函数处理</p><p>比如先声明一个Lisp函数FR计算X坐标</p><p>(list (FR 12) 1200 3000) </p><p>或者定义一个Lisp函数,返回值是点坐标</p><p>调用</p><p>(mylispfunc "fr12,1200,3000")</p> 如果是lisp函数,就无法在所有命令中使用,我的意思是转换坐标输入表达方式,所以要内嵌入所有命令中。 hzh2000发表于2009-7-22 13:06:00static/image/common/back.gif如果是lisp函数,就无法在所有命令中使用<p>你试过么?</p> <p>自己写的程序当然可以调用这个自定义函数,但是,其他程序如ACAD命令、其他应用程序怎么去调用?除非每个命令重新定义,这个不现实。</p> <p>命令: _line 指定第一点: (list 0 0 0)<br/>(0 0 0)</p><p>指定下一点或 [放弃(U)]: (list 100 100 0)<br/>(100 100 0)</p><p>指定下一点或 [放弃(U)]:<br/></p> <p>试过了,选用的是先定义一个函数(defun fr( x y z / ))的形式,如下:</p><p>命令: _line 指定第一点: (fr 0 0 0)<br/>(0 0 0)</p><p>指定下一点或 [放弃(U)]: (fr 5 100 0)<br/>(3000 100 0)</p><p>指定下一点或 [放弃(U)]:<br/></p><p>不过需要输括号,与点坐标的输入方式不一样,有点不方便。最好能变成如下方式就方便了:</p><p>命令: _line 指定第一点: fr 0,0,0</p><p>(0 0 0)</p><p>指定下一点或 [放弃(U)]: fr 5,100,0<br/>(3000 100 0)</p><p>指定下一点或 [放弃(U)]:</p><p>谢谢版主指点。</p><p></p>
页:
[1]