tm20038175 发表于 2011-6-27 19:07:27

程序时好时坏问题~~~~

本帖最后由 tm20038175 于 2011-6-27 21:26 编辑

提示输入知坐标点的坐标值时,如果输入很小的数,例如(100,200,300)是准确的,
但是如果输入(10000,0,0)就出问题了,好奇怪,时好时坏呀~~~



(DEFUN C:yz ()
(
(setvar "CMDECHO" 0)
   (command "_.UCS" "" )
(setq pt0 (getpoint(strcat "\n<坐标轴旋转程序>:\n请点击<新坐标>[原点]:")))
             (setq pt1 (getpoint pt0 (strcat "\n<坐标轴旋转程序>:\n确定Y方向:")))
   
            (setq pt2 (getpoint pt0 (strcat "\n<坐标轴旋转程序>:\n确定Z方向:")))
      
(command "_.UCS" "_3" pt0 pt1 pt2 )
    (command "ucs" "y" "-90" )
      (command "ucs" "x" "-90" )


      (setq pt2 (getpoint (strcat "\n<坐标轴旋转程序>:\n请输入已知坐标点的坐标值/(Enter)<0 0 0>:")))
(if (= pt2 "")(setq pt '(0 0 0))
    (setq pt (mapcar '* '(-1 -1 -1) pt2)))

   (command "_.UCS" "_move" pt)   ;;;;;就是这句话不稳定造成的问题。。

          (setq p (getstring (strcat "\n<坐标轴旋转程序>:\n请输入[命名坐标系名称]/(Enter)<不命名>:")))
(if (/= p "")
(progn
(command "_.UCS" "na" "s" p)
(princ(strcat "\n新创建的坐标系名称为:<\""p"\">;输入点在[相对YZ坐标系\""p"\"]的坐标为:"))
(if (/= pt2 nil)(princpt2) (princ'(0 0 0)))
)
)

(setvar "CMDECHO" 1)
(setvar "CMDECHO" 0)
(princ(strcat "\n<坐标轴旋转程序>:\n<新坐标>[转换完毕!!!]:\n"))
(princ)

)

tm20038175 发表于 2011-6-27 19:37:58

就是很简单的完成坐标旋转,但是总是出问题,好奇怪~~

tm20038175 发表于 2011-6-27 21:14:04

就是这句话总是出问题,
(command "_.UCS" "_move" pt)
且找不到原因。。。。

highflybird 发表于 2011-6-27 21:29:15

检查一下捕捉模式设置:
osmode

ljpnb 发表于 2011-6-27 21:58:16

不想设置osmode,那就在点之前加"non"试试
(command "_.UCS" "_move""non" pt)

tm20038175 发表于 2011-6-27 23:16:24

谢谢大家热心回复,明天我再去测试下,希望是捕捉问题。。。

我最怕的是视图问题,因为数字很小就没有问题的?
页: [1]
查看完整版本: 程序时好时坏问题~~~~