程序时好时坏问题~~~~
本帖最后由 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)
)
就是很简单的完成坐标旋转,但是总是出问题,好奇怪~~ 就是这句话总是出问题,
(command "_.UCS" "_move" pt)
且找不到原因。。。。 检查一下捕捉模式设置:
osmode 不想设置osmode,那就在点之前加"non"试试
(command "_.UCS" "_move""non" pt)
谢谢大家热心回复,明天我再去测试下,希望是捕捉问题。。。
我最怕的是视图问题,因为数字很小就没有问题的?
页:
[1]