嗨,比格尔。我需要计算当前布局的打印成本。
第一个lisp代码为我提供了所有布局的尺寸。这个lisp计算最后一个布局的成本。有人可以更改它来计算当前布局的成本吗?
- (defun c:test (/ lo wdt lg plotarea)
- (vl-load-com)
- (vlax-for lo (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
- (vla-getpapersize lo 'wdt 'lg)
- (setq plotarea (list wdt lg))
- (princ "\n")
- (princ (vla-get-name lo))
- (princ "\n\t\tPlot size - ")
- (princ
- (if
- (zerop (rem (vla-get-plotrotation lo) 2))
- plotarea
- )
- )
- )
- (setq area (/( * wdt lg) 1000000))
- (setq pr (cond ((getreal "\n The print cost €/sq.m (π.χ 2.30 €/sq.m monochrome ή 3.50 €/sq.m color) : "))(2.30)))
- (setq cost (* pr area))
- (setq sx (cond ((getreal "\n Give the number of copies (example 3) : "))(3)))
- (setq scost (* sx cost))
- (textscr)
- (princ (strcat
- "\n Calculations"
- "\n --------------------------------------------------------------------------"
- "\n dimension x = "
- (rtos wdt 2 2)
- " m"
- "\n dimension y = "
- (rtos lg 2 2)
- " m"
- "\n Area of the print paper = "
- (rtos area 2 2)
- " sq.m"
- "\n Cost per drawing = "
- (rtos cost 2 2)
- " €"
- "\n Total Cost of Printing = "
- (rtos scost 2 2)
- " €"
- )
- )
- (princ)
- )
谢谢 |