电气面板相位平衡
好吧,就这么定了。我需要一个LISP来计算相位平衡,它基本上是两个数字之间的误差百分比,如下表所示。然而,我们需要它进行选择,找到最大数和最小数,并进行以下计算,而不管集合中的数字是多少。(大-小)/大*100=X.X%
目前,我们使用ADD。LSP接受一个选择并将数字相加。我对编程不够熟悉,因此无法使用这个相对简单的算法并使其成为一个有效的LSP。
如果有人能做这样的事情,我已经附加了ADD命令。
添加LSP
它应该通过进行选择来工作,然后提示用户选择放置相位平衡的位置(通过将所选文本调整为更新值X.X%)。 http://imgur.com/4995gga
在上图中。这个程序,如果我能让它工作的话,将通过选择所有三个数字,点击空格键,然后选择相位平衡旁边的数字,然后再次点击空格键来工作。 如果你看一下你想编辑的帖子的右下角,你应该会看到文字“编辑帖子”。点击短语。 啊。。。十杆最低得分再次出现。很抱歉 试试这个:
(defun KGA_Conv_Pickset_To_ObjectList (ss / i ret)
(if ss
(repeat (setq i (sslength ss))
(setq ret (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) ret))
)
)
)
(defun c:PhaseBalance ( / ss numLst numMin numMax res trg)
(if
(and
(princ "\nSelect source entities: ")
(setq ss (ssget '((0 . "TEXT") (1 . "~*[~-.0-9]*") (1 . "~*`.*`.*") (1 . "~?*-*"))))
(setq trg (car (entsel "\nSelect target entity: ")))
(= "AcDbText" (vla-get-objectname (setq trg (vlax-ename->vla-object trg))))
)
(progn
(setq numLst
(mapcar
'(lambda (obj) (read (vla-get-textstring obj)))
(KGA_Conv_Pickset_To_ObjectList ss)
)
)
(setq numMin (apply 'min numLst))
(setq numMax (apply 'max numLst))
;; Formula: (Big - Small)/Big * 100 = X.X%
(setq res (strcat (rtos (/ (- numMax numMin) numMax 0.01) 2 1) "%"))
(princ (strcat "\nPhase Balance: "res))
(vla-put-textstring trg res)
)
)
(princ)
) 你能从一个面板上取一个总瓦数除以360得到安培数吗?我可以称之为360度或者其他什么。哇,还是很惊讶你编的代码! Roy_043,
您是否可以制作一个lisp,该lisp取一个值(以瓦特为单位的总需求)并除以360得到208V的总需求安培数?此外,当使用480V时,我们除以831。这两个Lisp程序会让事情变得更快。此外,在相位平衡中,是否对该值进行了舍入?你是自己做了相位平衡还是碰巧已经做了?
如果您只想更改输出的小数点精度,请查看Roy_043代码中的RTOS函数。
http://ronleigh.com/autolisp/afude12.htm#rtos
页:
[1]