Em lisp Text e truncar zeros. Uso o autocad 2014 em portugues. como fazer que o texto fique na mesma linha e que eu posso reduzir o numero de zeros.
A ideia é informar os tres elementos das engrenagens e em lisp fazer os calculos e imprimir no desenho como fazer os desenhos das mesmas.
Script:
(command "_text" "_mc" (list ic ic) "2" "0.0" " Diametro externo motora = " "_text" "" de1
"_text" "" " Diametro primitivo motora =" "_text" "" dp1
"_text" "" " Diametro interno motora =" "_text" "" di1)
o que são impresso..
Diametro externo motora =
52,0000000000000000000000000
Diametro primitivo motora =
48,0000000000000000000000000
Diametro interno motora =
44,000000000000000000000000
Queria que forsse impresso assim:
Diametro externo motora = 52,00
Diametro primitivo motora = 48,00
Diametro interno motora = 44,00
Ver anexo
Solucionado! Ir para Solução.
Solucionado por hmsilva. Ir para Solução.
Olá aco2000,
como já tinha dito na minha outra resposta, necessito de saber como as variaveis 'ic de1 dp1 di1' são criadas, para poder utilizar a função 'rtos' com o modo de precisão...
e.x.
(rtos dp1 2 2)
se a variavel dp1 for um numero real, antes de se converter em 'string' utilizamos a função 'rtos' unidades o primeiro '2' (decimal) precisão o segundo '2' duas casas decimais.
para o texto
(command "_text" "_mc" ic "2" "0.0" (strcat " Diametro externo motora = " de1 ) "_text" "" (strcat"\n Diametro primitivo motora = " dp1) "_text" "" (strcat "\n Diametro interno motora = " di1))
deverá funcionar como pretendido (parto do principio que 'ic' já é uma lista com as duas coordenadas.
Henrique
Como já não posso editar o post anterior,
vê esta 'demo'.
(defun c:demo ( / CELE CELI CELP CEX CIN CPR DE1 DI1 DIMZ DP1 IC) (if (and (setq cele (car (entsel "\nSeleciona o circulo exterior: "))) (setq cex (entget cele)) (= (cdr (assoc 0 cex)) "CIRCLE") (setq de1 (rtos (* (cdr (assoc 40 cex)) 2.0) 2 2)) (setq celp (car (entsel "\nSeleciona o circulo primitivo: "))) (setq cpr (entget celp)) (= (cdr (assoc 0 cpr)) "CIRCLE") (setq dp1 (rtos (* (cdr (assoc 40 cpr)) 2.0) 2 2)) (setq celi (car (entsel "\nSeleciona o circulo interno: "))) (setq cin (entget celi)) (= (cdr (assoc 0 cin)) "CIRCLE") (setq di1 (rtos (* (cdr (assoc 40 cin)) 2.0) 2 2)) (setq ic (getpoint "\nSeleciona o ponto de inserção: ")) ) (progn (setq dimz (getvar 'DIMZIN)) (setvar 'DIMZIN 0) (command "_text" "_mc" ic "2" "0.0" (strcat " Diametro externo motora = " de1) "_text" "" (strcat "\n Diametro primitivo motora = " dp1) "_text" "" (strcat "\n Diametro interno motora = " di1) ) (setvar 'DIMZIN dimz) ) ) (princ) )
Qualquer dúvida, pergunta...
Espero que ajude
Henrique
Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.