lml2023 发表于 2023-10-27 12:14:48

请问一下,这个求差时候为何算出来是相反的值?


请问一下,这个求差时候为何算出来是相反的值?

比如22.5   11.5   求出来是-10,用11.5-22.5=10?
(defun c:QH (/ en en_data i list1 lst ss txt_add)
(setq ss (ssget '((0 . "text")(1 . "~*[~--9]*"))))
(setq i 0)
(setq lst nil)
(repeat (sslength ss)
    (setq en_data (entget (setq en (ssname ss i))))
    (setq list1 (cdr (assoc 1 en_data)))
    (setq lst (cons list1 lst))
    (setq i (1+ i))
)
(setq txt_add (apply '+ (mapcar 'read lst)))
      
(command "text" "non" pause "" "" (vl-princ-to-string txt_add) )
(prin1)
)



(defun c:QC (/ en en_data i list1 lst ss txt_add)
(setq ss (ssget '((0 . "text")(1 . "~*[~--9]*"))))
(setq i 0)
(setq lst nil)
(repeat (sslength ss)
    (setq en_data (entget (setq en (ssname ss i))))
    (setq list1 (cdr (assoc 1 en_data)))
    (setq lst (cons list1 lst))
    (setq -i (1+ i))
)
(setq txt_add (apply '- (mapcar'read lst)))
      
(command "text" "non" pause"" "" (vl-princ-to-string txt_add) )
(prin1)
)


飞雪神光 发表于 2023-10-27 12:36:09

若不对选择集进行排序 则默认后生成的图元在前 代码中cons 又将顺序导致 例 按文字生成顺序11.5 22.5 选择集中顺序为 22.5 11.5 cons后又为11.5 22.5 因此在相减时 就是按实际的图元生成顺序相减

xj6019 发表于 2023-10-27 12:41:01

求和无所谓顺序,求差,这么批选,结果肯定是乱套的,根本也没法用吧

lml2023 发表于 2023-10-27 14:13:36

xj6019 发表于 2023-10-27 12:41
求和无所谓顺序,求差,这么批选,结果肯定是乱套的,根本也没法用吧

啊哈,那咋整

lml2023 发表于 2023-10-27 14:15:21

飞雪神光 发表于 2023-10-27 12:36
若不对选择集进行排序 则默认后生成的图元在前 代码中cons 又将顺序导致 例 按文字生成顺序11.5 22.5 选 ...

谢谢,指教,我调试试
页: [1]
查看完整版本: 请问一下,这个求差时候为何算出来是相反的值?