3625095 发表于 2024-5-29 18:49:10

求扩充求合程序

(DEFUN C:DF (/ SS N X AA ENT1 LST NUM FNUM SNUM)
(setq SS (SSGET '((0 . "text"))))
(setq N (SSLENGTH SS))
(setq X 0)
(setq AA 0)
(setq SNUM 0)
(REPEAT N
    (setq ENT1 (cdr (ASSOC 1 (ENTGET (SSNAME SS X)))))
    (setq LST (APPEND (LIST ENT1) LST))
    (setq X (1+ X))
)
(if (OR (APPLY 'AND (MAPCAR '(LAMBDA (X) (WCMATCH X "*U")) LST))
          (APPLY 'AND (MAPCAR '(LAMBDA (X) (GXL-STRISNUM X)) LST))
      )
    (PROGN
      (if (APPLY 'AND (MAPCAR '(LAMBDA (X) (WCMATCH X "*U")) LST))
        (PROGN
          (REPEAT (LENGTH LST)
          (setq NUM (READ (VL-STRING-RIGHT-TRIM "U" (NTH AA LST))))
          (setq FNUM NUM)
          (setq SNUM (+ SNUM FNUM))
          (setq AA (1+ AA))
          )
          (ALERT (STRCAT "所统计开关总模数为" (RTOS SNUM 2 1) "U"))
        )
        (PROGN (APPLY 'AND (MAPCAR '(LAMBDA (X) (GXL-STRISNUM X)) LST))
             (REPEAT (LENGTH LST)
               (setq NUM (READ (NTH AA LST)))
               (setq FNUM NUM)
               (setq SNUM (+ SNUM FNUM))
               (setq AA (1+ AA))
             )
             (ALERT (STRCAT "所统计总功率为" (RTOS SNUM 2 1) "kW"))
        )
      )
    )
    (PROGN (ALERT "选择有误,包含非模数或非数字文字"))
)
(PROMPT "\n 程序执行成功")
(PRIN1)
)

以上为源代码,想增加统计E 和M 分别求合,能否输入命令后比如S,弹出对话框可输入限制U,M,E值(不输入S即为默认值)。U,M,E值分别默认为10.5U,36E,72E。当框选大于(等于不算)默认或设定值后,弹出对话框提示:所选模数过多,请重新选择。附上所有币,谢谢。

xj6019 发表于 2024-5-29 21:51:15

不是同行,完全看不懂是啥

3625095 发表于 2024-5-30 11:32:33

xj6019 发表于 2024-5-29 21:51
不是同行,完全看不懂是啥

谢谢。:lol大佬是什么专业
页: [1]
查看完整版本: 求扩充求合程序