Via stabiCAD kan ik automatisch een staatje met getallen genereren, maar wanneer ik dit handmatig wijzig moet ik de uitkomst van de waarden handmatig optellen en wijzigen. (het wijzigen van de waarden en uitkomst met StabicAD is soms erg lastig)
Ik wil wanneer ik een aantal waarden wijzig alle waarden via een lisp routine kunnen optellen en de bestaande uitkomst wijzigen in de aangepaste uitkomst.
Nou heb ik wel al een routine ergens vandaan weten te halen, maar dit werkt nog niet goed. Het optellen gaat niet helemaal goed en ik kan dit niet gebruiken voor alle lettertypen. Je kan een percentage aangeven, maar zoals uit het script blijkt is dit altijd 60%
Hebben jullie een idee hoe ik het wel goed werkend krijg?
(defun c:tekstel (/ ss1 el1 som prc)
(setq ss1 (ssget) tel 0 som 0)
(repeat (sslength ss1)
(setq el1 (entget (ssname ss1 tel)))
(if (= (cdr (assoc 0 el1)) "TEXT")
(setq som (+ som (atof (cdr (assoc 1 el1)))))
) (setq tel (1+ tel))
)
(if (setq prc (getreal (strcat "\nPercentage van " (rtos som 2 4) " <60%>: "))) (setq prc (/ prc 100)) (setq prc 0.6))
(if (= (sslength ss1) 1) (setq som (* som prc)))
(setq enm (car (entsel "\nSelect text: ")))
(command "change" enm "" "" "" "" "" "" (rtos som 2 0))
(princ (rtos som 2 0))
(if (= (sslength ss1) 1) (princ " = 60%"))
(princ)
)
Alvast bedankt,
Marco
Ik wil wanneer ik een aantal waarden wijzig alle waarden via een lisp routine kunnen optellen en de bestaande uitkomst wijzigen in de aangepaste uitkomst.
Nou heb ik wel al een routine ergens vandaan weten te halen, maar dit werkt nog niet goed. Het optellen gaat niet helemaal goed en ik kan dit niet gebruiken voor alle lettertypen. Je kan een percentage aangeven, maar zoals uit het script blijkt is dit altijd 60%
Hebben jullie een idee hoe ik het wel goed werkend krijg?
(defun c:tekstel (/ ss1 el1 som prc)
(setq ss1 (ssget) tel 0 som 0)
(repeat (sslength ss1)
(setq el1 (entget (ssname ss1 tel)))
(if (= (cdr (assoc 0 el1)) "TEXT")
(setq som (+ som (atof (cdr (assoc 1 el1)))))
) (setq tel (1+ tel))
)
(if (setq prc (getreal (strcat "\nPercentage van " (rtos som 2 4) " <60%>: "))) (setq prc (/ prc 100)) (setq prc 0.6))
(if (= (sslength ss1) 1) (setq som (* som prc)))
(setq enm (car (entsel "\nSelect text: ")))
(command "change" enm "" "" "" "" "" "" (rtos som 2 0))
(princ (rtos som 2 0))
(if (= (sslength ss1) 1) (princ " = 60%"))
(princ)
)
Alvast bedankt,
Marco