cwzfirst 发表于 2014-3-26 13:20:34

请教下大家 为啥我程序的 pt2 值不会变呢?

(setq du (entget (car (entsel))))
   (setq pt1 (assoc 10 du ))
   (setq pt2 pt1)
   (print pt1)
   (setq xie-y (- (nth 2 pt1) 6000 ))
   (subst xie-y (nth 2 pt2) pt2)
   (print pt2)

ysq101 发表于 2014-3-26 13:20:35

(subst xie-y (nth 2 pt2) pt2)
改为(setq pt2(subst xie-y (nth 2 pt2) pt2))
你要用SETQ来回收替换掉的PT2的值啊

cwzfirst 发表于 2014-3-26 15:15:04

ysq101 发表于 2014-3-26 13:20 static/image/common/back.gif
(subst xie-y (nth 2 pt2) pt2)
改为(setq pt2(subst xie-y (nth 2 pt2) pt2))
你要用SETQ来回收替换掉 ...

问题已经解决 我现在要调用 “command” 命令 把选择的图元 copy 到其他位置 一直未能实现求解。
(setq aaa (car (entsel)))
(setq du (entget aaa))
   (print du)
   (setq pt1 (cdr (assoc 10 du )))
   (setq pt2 pt1)
   (print pt1)
   (setq xie-y (- (nth 1 pt1) 6000 ))
   (setq pt2 (subst xie-y (nth 1 pt2) pt2))
   (print pt2)
   (print (entlast))
   (command "copy" (entlast) pt1 pt2"")

ysq101 发表于 2014-3-26 17:47:44

cwzfirst 发表于 2014-3-26 15:15 static/image/common/back.gif
问题已经解决 我现在要调用 “command” 命令 把选择的图元 copy 到其他位置 一直未能实现求解。
(setq...

我汗一个先。。。。。这程序不是这么写的啊。。。
你一开始思路就不对啊
说说你最终要做什么吧

ysq101 发表于 2014-3-26 17:50:11

本帖最后由 ysq101 于 2014-3-26 17:53 编辑

cwzfirst 发表于 2014-3-26 15:15 static/image/common/back.gif
问题已经解决 我现在要调用 “command” 命令 把选择的图元 copy 到其他位置 一直未能实现求解。
(setq...(setq aaa (car (entsel)))
(setq du (entget aaa))
   (print du)
   (setq pt1 (cdr (assoc 10 du )))
   (setq pt2 pt1)
   (print pt1)
   (setq xie-y (- (nth 1 pt1) 6000 ))
   (setq pt2 (subst xie-y (nth 1 pt2) pt2)) ;这话返回的是一个实数
   (print pt2)
   (print (entlast)) ;再说你在这之前也没有生成图元啊,,,所以
entlast反回的是你更之前的最后一个图元

   (command "copy" (entlast) pt1 pt2"")    ;错误在PT2不是点帮你看了一下。。。你的PT2不是点啊。。。

llsheng_73 发表于 2014-4-12 23:14:55

本帖最后由 llsheng_73 于 2014-4-12 23:16 编辑

ysq101 发表于 2014-3-26 17:50 static/image/common/back.gif
帮你看了一下。。。你的PT2不是点啊。。。
(setq pt1 (cdr (assoc 10 du )))
(setq pt2(list(car pt1)(- (nth 1 pt1) 6000 ))
      pt2(if(=(length pt1)3)(append pt2(list(last pt1)))pt2))
;;不直接用(setq pt2(subst(- (nth 1 pt1) 6000)(nth 1 pt1) pt1)),因为当pt1的x和y相等的时候它会全部被替换而导致结果不对,这是很容易被忽略的一个隐藏错误,当然,一般情况下(比如测绘)X,Y坐标通常位数都不会相同,它并不会引出错误结果
页: [1]
查看完整版本: 请教下大家 为啥我程序的 pt2 值不会变呢?