wchsunshine 发表于 2021-3-14 20:59:17

bai2000 发表于 2021-3-11 21:25
我这有个,不知哪位大神的,你看看

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;两列连 ...

这个不错,就是小数位保留了3位,太多了,哪位大神可以改下吗?
要求: 保留小数点位1位,数值尾部消零。

bssurvey 发表于 2021-3-15 08:50:55

wchsunshine 发表于 2021-3-14 20:55
测试了,可以算乘积。希望增加乘积计算后,替换文本功能,这样可以计算后直接替换原文本,就非常好了。

(defun c:t()                                                      
(setvar "cmdecho" 0)                                          
(prompt "\n请选择计算式左侧列")                                       
(setq left1(ssget '((0 . "text"))))                           
(setq lt1(sslength left1))                                    
(setq i 0)                                                      
(prompt "\n请选计算式择右侧列")                                    
(setq right1(ssget '((0 . "text"))))                           
(prompt "\n请选择乘积列")                                    
(setq lr1(ssget '((0 . "text"))))                           
(repeat lt1                                                   
    (setq rt1(sslength right1))                                 
    (setq j 0)                                                   
    (setq ent(entget (ssname left1 i)))                           
    (setq l-pt(cdr (assoc 10 ent)))                              
    (setq txth(cdr (assoc 40 ent)))                              
    (setq l-pt-x(car(cdr (assoc 10 ent))))                        
    (setq l-pt-y(cadr(cdr (assoc 10 ent))))                     
    (setq ltxt(cdr (assoc 1 ent)))                              
    (repeat rt1                                                   
      (setq rent(entget (ssname right1 j)))                     
      (setq r-pt(cdr (assoc 10 rent)))                           
      (setq r-pt-x(car(cdr (assoc 10 rent))))                     
      (setq r-pt-y(cadr(cdr (assoc 10 rent))))                  
      (setq rtxt(cdr (assoc 1 rent)))                           
      (setq lrt1(sslength lr1))                                 
      (if (= l-pt-y r-pt-y)                                       
      (progn                                                   
          (setq x1(rtos (* (atof ltxt) (atof rtxt)) 2 1))
          (setq k 0)                                                   
          (repeat lrt1                                                   
            (setq lrent(entget (ssname lr1 k)))
            (setq lrpt(cdr (assoc 10 lrent)))
            (setq lr-pt-x(car(cdr (assoc 10 lrent))))
            (setq lr-pt-y(cadr(cdr (assoc 10 lrent))))
            (if (= r-pt-y lr-pt-y)                                       
            (progn                                                   
                (setq lrtxt(cdr (assoc 1 lrent)))
                (setq ntxt(subst (cons 1 x1)(assoc 1 lrent) lrent))
                (entmod ntxt)
            )
            )
            (setq k(1+ k))
          )                              
      )                                                         
      )                                                         
      (setq j(1+ j))                                             
    )                                                            
    (setq i(1+ i))                                                
)                                                               
(setvar "cmdecho" 1)                                          
)

wchsunshine 发表于 2021-3-25 20:35:24

坐等   大师优化下

再见熊猫衣服 发表于 2021-3-26 11:17:45


这个,不知道是谁做的哦。

bssurvey 发表于 2021-3-26 14:50:49

wchsunshine 发表于 2021-3-25 20:35
坐等   大师优化下

str3 (rtos (* str1 str2) 2 1);小數點位數就是3改成1
但要注意的是,因為第一列、第二列及第三列都沒有做順序的比較,有時會產生錯亂的情形

xtjd 发表于 2021-6-28 13:55:52

框选一次即可,先按y轴排列取3项成表,再按x轴排列取前2项乘积







bai2000 发表于 2021-6-30 17:49:32

四列相剩怎么办?

wchsunshine 发表于 2024-8-17 18:38:30

vitalgg 发表于 2021-3-10 13:17
我微信只聊天,偶尔看朋友圈,能把其它的游戏,看一看之类的删了吗?

这个lisp运行命令是哪个 ?@m吗?

vitalgg 发表于 2024-8-18 15:27:05

wchsunshine 发表于 2024-8-17 18:38
这个lisp运行命令是哪个 ?@m吗?

执行安装代码

安装成功后在命令行输入中文"多列运算"
或 @P 安装数学工具。后到@lisp菜单中找

金鹅起飞 发表于 2024-9-30 09:17:59

本帖最后由 金鹅起飞 于 2024-9-30 09:21 编辑

xtjd 发表于 2021-6-28 13:55
框选一次即可,先按y轴排列取3项成表,再按x轴排列取前2项乘积
xtjd 大师您好!我下载您的插件使用后觉得非常好。有没有办法改动下,可以很多列(比如60列或以上)都可以使用,框选第一列作为被乘数,再选择乘数后,得到计算结果,这样就非常完美了:lol
页: 1 [2] 3
查看完整版本: 所有明经币求 列乘积 lisp