Está en la página 1de 4

; Idea inicial y comienzo de rutina Tre

; Modificaciones y arreglos: devitg y gerardogqa


; Nov, 2008
(vl-load-com)
(defun c:KGS (/ cmd0 dimz0 seleccion
contador contador3 volumen1 volumen2
volumen3 volumen nombreent objetovla
factor factor2 cant conversion
kilogramos kilogramos3 escala puntodeturno1
puntodeturno datosaexcel
)

(vl-load-com)
(setq dibujo_activo (vla-get-activedocument (vlax-get-acad-object)))
(if (not (tblsearch "LAYER" "Kilos"))
(progn
(setq *capas* (vla-get-Layers dibujo_activo));obtenemos una referencia de
la tabla de capas
(setq nueva_capa (vla-add *capas* "Kilos")); creamos una nueva capa.
(vlax-put-property nueva_capa 'Color 150);pone color 150 a la capa
(vlax-put-property nueva_capa 'Linetype "Continuous");pone el tipo de linea
"Continuous"
);fin Progn
);fin IF

(if (null (tblobjname "STYLE" "SPOOL"))


(command "_style" "SPOOL" "arial" 0.0 1 0 "no" "no")
)

(command "_LAYER" "_S" "Kilos" "")

(SETQ factor2 1)

(SETQ finalizar 1)
(SETQ factor (GETREAL "densidad (actual 7850 Kg/mm3): "))

(IF (= factor nill)


(SETQ factor 7850)
)

(if (= contador2 nil)


(setq contador2 1)
)
(setq contador3 contador2)
(SETQ contador2
(GETINT (strcat "\nIndica numeraci�n <numeraci�n actual:"
(itoa contador2)
">:"
)
)
)
(if (= contador2 nil)
(setq contador2 contador3)
)
(setq escala 1000000000.00)
(SETQ datosaexcel 0)

(SETQ datosaexcel
(GETINT (strcat "\n�exportar a excel?(1=si/0=no,<"
(itoa datosaexcel)
">:"
)
)
)
(if (= datosaexcel nil) (setq datosaexcel 0))

(if (and (/= datosaexcel 1) (/= datosaexcel 0)) (setq datosaexcel 0))

(if (= datosaexcel 1)
(setq archivo (getfiled "Selecciona archivo de destino" "" "xls" 1))
)
(if (= datosaexcel 1)
(setq arch (open archivo "w"))
)

(while (= finalizar 1)

(setq contador 0)
(setq seleccion nil)
(if (= (setq cmd0 (getvar "cmdecho")) 1)
(setvar "cmdecho" 0)
)
(setq dimz0 (getvar "dimzin"))
(setvar "dimzin" 0)

;-----------

(while (not seleccion)

(setq seleccion (ssget '((0 . "3dsolid")))


contador 0
)
)
(setq volumen1 0.00)
(setq volumen 0.00)

;;;Repeat - gerardogqa
(repeat (sslength seleccion)
(setq nombreent (ssname seleccion contador)

contador2 (1+ contador2)


contador (1+ contador)
objetovla (vlax-ename->vla-object nombreent)
)
(setq volumen1 (vla-get-volume objetovla))

(setq volumen3 (/ volumen1 escala))


(setq volumen3 (* volumen3 factor2))

(setq kilogramos3 (* volumen3 factor))


(setq kilogramos3
(strcat (itoa contador2)
"- "
"\t"
(rtos kilogramos3 2 2)
" Kg"
)
)

(if (null alturatexto)


(setq alturatexto (getvar "TEXTSIZE"))
)

(if (= datosaexcel 1)
(write-line kilogramos3 arch)
)

(setq pt0 (vlax-get objetovla 'centroid))

(command "_text" "_mc" pt0 alturatexto "" kilogramos3)

(setq volumen (+ volumen1 volumen))


)

(setq volumen (/ volumen escala))

(setq volumen2 (* volumen factor2))

(setq kilogramos (* volumen2 factor))

(setq kilogramos (strcat (rtos kilogramos 2 2) " Kg"))

(princ "\n Unidades: milimetros")

(princ "\nkilogramos total de componentes: ")


(princ kilogramos)

(if (null alturatexto)


(setq alturatexto (getvar "TEXTSIZE"))
)
(setq puntodeturno (getpoint "\ndar punto para texto"))
(command "_text" "_mc" puntodeturno alturatexto "" kilogramos)
(if (= datosaexcel 1)
(write-line (strcat "Total:" "\t" kilogramos) arch)
)

(if (= 0
(GETINT (strcat "\nterminar archivo?(1=no, 0=si)"
(itoa finalizar)
":"
)
)
)
(setq finalizar 0)
)

; (setvar "dimzin" dimz0)


; (if (= cmd0 1)
; (setvar "cmdecho" 1) )

(if (= datosaexcel 1)
(close arch)
)

(princ)
)

También podría gustarte