

;=====================================================================================================================================================
;																									
;	( CDG-ESCULTURA-01 )	 	*** ¿ EN EGECUCION ? ***															
;																									
;			CALCULA (CDG) => CENTRO DE GRAVEDAD DE LOS PUNTOS (CON GRADUA) DE TODAS LAS SECCIONES (SPLINES)							
;																									
;=====================================================================================================================================================


;																									
;	  *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA *** PROGRAMA ***		
;																									

(DEFUN C:CDG-ESCULTURA-01 (/ )

	;																								
	;	ARRANCANDO																						
	(SETVAR "blipmode" 0) (SETVAR "cmdecho" 0) (GRAPHSCR) (COMMAND "-REFENT" "DES"  "SCP" "U"  "ORTO" "DES")

	;																								
	;	FIJA PARAMETROS																					
	(SETQ DISgra  0.3 )				; DISTANCIA para GRADUA  0.1	

	;																								
	;	SELECCCION DE SECCIONES (SPLINES)																		

	(TERPRI) (PROMPT " ********** DESIGNA TODAS LAS ESCCIONES ? ") (TERPRI)

	(SETQ CONJUN (SSGET))

	;																								
	;	OPERA																							

	(COMMAND "COLOR" 1) 
	(SETQ WW0 T)
	(SETQ NN -1)
	(SETQ LIS-PUNTOS nil)

	(WHILE WW0

		(SETQ NN (+ NN 1))
		(SETQ N-ENTI (SSNAME CONJUN NN))

		(IF  (= N-ENTI nil)   (SETQ WW0 nil)
			(PROGN
				(IF (EQUAL (CDR (ASSOC 0 (ENTGET N-ENTI))) "SPLINE")
					(PROGN
						;	GRADUA SPLINE ( DISgra ) PUNTOS-SPLINE  => LISTA PUNTOS   									

						(SETQ ALIS  (ENTGET N-ENTI))  					; lista Spline
						(SETQ AELE  (ASSOC 10 ALIS))  					; 1º Punto Asociado a 10 (10.punto)
						(SETQ AELES (MEMBER AELE ALIS)) 					; lista a partir del Alterior (10.punto)....(11.punto)
						(SETQ X-primer (CDR (NTH 0 AELES))) 				; primer elemento (10.punto)
						(SETQ X-ultimo (CDR (NTH (- (LENGTH AELES) 1) AELES)))	; ultimo elemento (11.punto)
						(COMMAND "PUNTO" X-primer)						; PINTA 1ª punto
						(SETQ N-enti-A1 (ENTLAST))						; nombre ultima entidad principal 1º punto A
						(COMMAND "GRADUA" N-ENTI DISgra)					; GRADUA SPLI
						(COMMAND "PUNTO" X-ultimo)						; PINTA Ultimo Punto
						;	PUNTOS SECCION-A (PA1-PAn) =>   LIS-PUNTOS  Lon-LPA										
						(SETQ LIS-PUNTOS (CONS (CDR (ASSOC 10 (ENTGET N-enti-A1))) LIS-PUNTOS))				; LIS-PUNTOS (1º Punto)
						(SETQ W1A T)
						(WHILE W1A
							(SETQ N-enti-A2 (ENTNEXT N-enti-A1))								; Nombre entidad siguiente
							(COMMAND "BORRA" N-enti-A1 "")
							(IF (= N-enti-A2 nil)  (SETQ W1A nil)
								(PROGN
									(SETQ LIS-PUNTOS (CONS (CDR (ASSOC 10 (ENTGET N-enti-A2))) LIS-PUNTOS)) ; LIS-PUNTOS (Resto)
									(SETQ N-enti-A1  N-enti-A2 )
								);progn
							);if
						) ;While W1A
					) ;pro
				) ;if
			) ;pro
		) ;if
	) ;WHILE

	(SETQ LIS-PUNTOS  (REVERSE LIS-PUNTOS ))

	;	CALCULO MEDIA DE CORDENADAS => ( CDG )																	

	(SETQ NN1 -1)

	(SETQ SUMAx 0.0)
	(SETQ SUMAy 0.0)
	(SETQ SUMAz 0.0)

	(REPEAT (LENGTH LIS-PUNTOS)

		(SETQ NN1 (+ NN1 1))

		(SETQ PUN (NTH NN1 LIS-PUNTOS))

		(SETQ SUMAx (+ SUMAx (CAR   PUN)))
		(SETQ SUMAy (+ SUMAy (CADR  PUN)))
		(SETQ SUMAz (+ SUMAz (CADDR PUN)))

  	) ;repe

	(SETQ CDGx (/ SUMAx (LENGTH LIS-PUNTOS)))
	(SETQ CDGy (/ SUMAy (LENGTH LIS-PUNTOS)))
	(SETQ CDGz (/ SUMAz (LENGTH LIS-PUNTOS)))

	(SETQ CDG (LIST CDGx CDGy CDGz))

	(COMMAND "COLOR" 5 "PUNTO" CDG)
	(COMMAND "COLOR" 5 "LINEA" (LIST (+ CDGx 15)    CDGy        CDGz    ) 	(LIST (- CDGx 15)    CDGy        CDGz    ) "")
	(COMMAND "COLOR" 5 "LINEA" (LIST    CDGx     (+ CDGy 15)    CDGz    ) 	(LIST    CDGx     (- CDGy 15)    CDGz    ) "")
	(COMMAND "COLOR" 5 "LINEA" (LIST    CDGx        CDGy     (+ CDGz 30)) 	(LIST    CDGx        CDGy     (- CDGz 30)) "")

  
	;																								
	;	PARANDO																						
	(SETVAR "blipmode" 1) (SETVAR "cmdecho" 1)

) ;CIERRE DEFUN CDG-ESCULTURA-01

;=====================================================================================================================================================
