;;;;;;;;;;;;;;; GET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (DEFUN C:GET () (setq get (entget(car(entsel))'("*"))) (setq xdata (cdadr (assoc -3 get))) (setq obj (cdr (assoc 1070 (cdddr xdata)))) (COND ((= obj 1536) (setq objSP (cdr (assoc 10 get))) (setq objL (cdr (assoc 1010 xdata))) (PROMPT "Get a Box!!\n") (setq NEWDATA (list (list "box" objSP objL))) (setq OBJDATA (append OBJDATA NEWDATA)) ) ((= obj 1537) (setq objSP (cdr (assoc 10 get))) (setq objL (cdr (assoc 1010 xdata))) (PROMPT "It is a Cone!!\n") (setq NEWDATA (list (list "cone" objSP objL))) (setq OBJDATA (append OBJDATA NEWDATA)) ) ((= obj 1538) (setq objSP (cdr (assoc 10 get))) (setq objL (cdr (assoc 1010 xdata))) (PROMPT "It is a Cylinder!!\n") (setq NEWDATA (list (list "cylinder" objSP objL))) (setq OBJDATA (append OBJDATA NEWDATA)) ) ((= obj 1539) (setq objSP (cdr (assoc 10 get))) (setq objL (cdr (assoc 1010 xdata))) (PROMPT "It is a Sphere!!\n") (setq NEWDATA (list (list "sphere" objSP objL))) (setq OBJDATA (append OBJDATA NEWDATA)) ) ((= obj 1540) (setq objSP (cdr (assoc 10 get))) (setq objL (cdr (assoc 1010 xdata))) (PROMPT "Get a Torus!!\n") (setq NEWDATA (list (list "torus" objSP objL))) (setq OBJDATA (append OBJDATA NEWDATA)) ) ) ) ;;;;;;;;; MAKE HyperFun's program ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (DEFUN C:MAKE () (SETQ write_file (GETFILED "enter file name: " "" "hf" 5)) (setq srnum 1) (setq brnum 1) (setq crnum 1) (setq cyrnum 1) (setq trnum 1) (setq ssnum (RTOS srnum 2 0)) (setq bsnum (RTOS brnum 2 0)) (setq csnum (RTOS crnum 2 0)) (setq cysnum (RTOS cyrnum 2 0)) (setq tsnum (RTOS trnum 2 0)) (setq sphere_array (strcat "sphere_array" ssnum)) (setq box_array (strcat "box_array" bsnum)) (setq cone_array (strcat "cone_array" csnum)) (setq cylinder_array (strcat "cylinder_array" cysnum)) (setq torus_array (strcat "torus_array" tsnum)) (setq objnum 0) (setq objlength (length objdata)) (while (> objlength objnum) (setq objD1 (STRCAT (RTOS (nth 0 (nth 1 (nth objnum objdata)))) ", " (RTOS (nth 1 (nth 1 (nth objnum objdata)))) ", " (RTOS (nth 2 (nth 1 (nth objnum objdata)))) ) ) (setq objD2 (STRCAT (RTOS (nth 0 (nth 2 (nth objnum objdata)))) ", " (RTOS (nth 1 (nth 2 (nth objnum objdata)))) ", " (RTOS (nth 2 (nth 2 (nth objnum objdata)))) ) ) (COND ;;;;;;;;;;;;;;;;;;;;;;; box ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ((= (car (nth objnum objdata)) "box") (PROGN (IF (= array_list nil) (progn ;then (SETQ array_list (STRCAT "array " box_array "[3]; ")) (setq brnum (1+ brnum)) );then end (progn ;else (SETQ bsnum (RTOS brnum 2 0)) (setq box_array (strcat "box_array" bsnum)) (SETQ next_array (STRCAT "array " box_array "[3]; ")) (SETQ array_list (STRCAT array_list next_array)) (SETQ brnum (1+ brnum)) );else end );if end (IF (= point_list nil) (SETQ point_list (STRCAT box_array "=[" objD1 "]; ")) (progn (SETQ next_list (STRCAT box_array "=[" objD1 "]; ")) (SETQ point_list (STRCAT point_list next_list)) ) );if end (IF (= name_list nil) (progn (SETQ name_list (STRCAT "bo" bsnum "= hfBlock(x," box_array "," objD2 "); ")) (SETQ model_list (STRCAT "bo" bsnum)) );progn end (progn (SETQ next_name (STRCAT "bo" bsnum "= hfBlock(x," box_array "," objD2 "); ")) (SETQ name_list (STRCAT name_list next_name)) (SETQ next_model (STRCAT " | bo" bsnum)) (SETQ model_list (STRCAT model_list next_model)) );progn end );if end ) ;progn-box end ) ;case-box end ;;;;;;;;;;;;;;;; torus ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ((= (car (nth objnum objdata)) "torus") (PROGN (setq objD2 (STRCAT (RTOS (nth 0 (nth 2 (nth objnum objdata)))) ", " (RTOS (nth 1 (nth 2 (nth objnum objdata)))) ) ) (IF (= array_list nil) (progn ;then (SETQ array_list (STRCAT "array " torus_array "[3]; ")) (setq trnum (1+ trnum)) );then end (progn ;else (SETQ tsnum (RTOS trnum 2 0)) (setq torus_array (strcat "torus_array" tsnum)) (SETQ next_array (STRCAT "array " torus_array "[3]; ")) (SETQ array_list (STRCAT array_list next_array)) (SETQ trnum (1+ trnum)) );else end );if end (IF (= point_list nil) (SETQ point_list (STRCAT torus_array "=[" objD1 "]; ")) (progn (SETQ next_list (STRCAT torus_array "=[" objD1 "]; ")) (SETQ point_list (STRCAT point_list next_list)) ) );if end (IF (= name_list nil) (progn (SETQ name_list (STRCAT "to" tsnum "= hfTorusZ(x," torus_array "," objD2 "); ")) (SETQ model_list (STRCAT "to" tsnum)) );progn end (progn (SETQ next_name (STRCAT "to" tsnum "= hfTorusZ(x," torus_array "," objD2 "); ")) (SETQ name_list (STRCAT name_list next_name)) (SETQ next_model (STRCAT " | to" tsnum)) (SETQ model_list (STRCAT model_list next_model)) );progn end );if end ) ;progn-torus end );case-torus end ;;;;;;;;;;;;;;;;;;;;;;; Sphere ;;;;;;;;;;;;;;;;;;;;;;;;;;; ((= (car (nth objnum objdata)) "sphere") (PROGN ;progn-sphere (setq objD1 (STRCAT (RTOS (nth 0 (nth 1 (nth objnum objdata)))) ", " (RTOS (* (nth 2 (nth 1 (nth objnum objdata))) -1)) ", " (RTOS (nth 1(nth 1 (nth objnum objdata)))) ) ) (setq objD2 (STRCAT (RTOS (nth 0 (nth 2 (nth objnum objdata))))) ) (IF (= array_list nil) (progn ;then (SETQ array_list (STRCAT "array " sphere_array "[3]; ")) (setq srnum (1+ srnum)) );then end (progn ;else (SETQ ssnum (RTOS srnum 2 0)) (setq sphere_array (strcat "sphere_array" ssnum)) (SETQ next_array (STRCAT "array " sphere_array "[3]; ")) (SETQ array_list (STRCAT array_list next_array)) (SETQ srnum (1+ srnum)) );else end );if end (IF (= point_list nil) (progn (SETQ point_list (STRCAT sphere_array "=[" objD1 "]; ")) );then end (progn (SETQ next_list (STRCAT sphere_array "=[" objD1 "]; ")) (SETQ point_list (STRCAT point_list next_list)) );else end );if end (IF (= name_list nil) (progn (SETQ name_list (STRCAT "sp" ssnum "= hfSphere(x," sphere_array "," objD2 "); ")) (SETQ model_list (STRCAT "sp" ssnum)) );progn end (progn (SETQ next_name (STRCAT "sp" ssnum "= hfSphere(x," sphere_array "," objD2 "); ")) (SETQ name_list (STRCAT name_list next_name)) (SETQ next_model (STRCAT " | sp" ssnum)) (SETQ model_list (STRCAT model_list next_model)) );progn end );if end ); progn-sphere end ); case sphere end ;;;;;;; cone ;;;;;;;; ((= (car (nth objnum objdata)) "cone") (PROGN ;progn-cone (setq objD1 (STRCAT (RTOS (* (nth 0 (nth 1 (nth objnum objdata))) -1)) ", " (RTOS (nth 1 (nth 1 (nth objnum objdata)))) ", " (RTOS (* (nth 2 (nth 1 (nth objnum objdata))) -1)) ) ) (setq objD2 (RTOS (/ (nth 0 (nth 1 (nth objnum objdata))) (nth 2 (nth 1 (nth objnum objdata))) )) ) (IF (= array_list nil) (progn ;then (SETQ array_list (STRCAT "array " cone_array "[3]; ")) (setq crnum (1+ crnum)) );then end (progn ;else (SETQ csnum (RTOS crnum 2 0)) (setq cone_array (strcat "cone_array" csnum)) (SETQ next_array (STRCAT "array " cone_array "[3]; ")) (SETQ array_list (STRCAT array_list next_array)) (SETQ crnum (1+ crnum)) );else end );if end (IF (= point_list nil) (SETQ point_list (STRCAT cone_array "=[" objD1 "]; ")) (progn (SETQ next_list (STRCAT cone_array "=[" objD1 "]; ")) (SETQ point_list (STRCAT point_list next_list)) ) );if end (IF (= name_list nil) (progn (SETQ name_list (STRCAT "co" csnum "= hfConeZ(x," cone_array "," objD2 "); ")) (SETQ model_list (STRCAT "co" ssnum)) );progn end (progn (SETQ next_name (STRCAT "co" csnum "= hfConeZ(x," cone_array "," objD2 "); ")) (SETQ name_list (STRCAT name_list next_name)) (SETQ next_model (STRCAT " | co" csnum)) (SETQ model_list (STRCAT model_list next_model)) );progn end );if end );progn-cone end );case cone end ;;;;; cylinder ;;;;;;; ((= (car (nth objnum objdata)) "cylinder") (PROGN ;progn-cylinder (setq objD2 (STRCAT (RTOS (nth 0 (nth 2 (nth objnum objdata))))) ) (IF (= array_list nil) (progn ;then (SETQ array_list (STRCAT "array " cylinder_array "[3]; ")) (setq cyrnum (1+ cyrnum)) );then end (progn ;else (SETQ cysnum (RTOS cyrnum 2 0)) (setq cylinder_array (strcat "cylinder_array" cysnum)) (SETQ next_array (STRCAT "array " cylinder_array "[3]; ")) (SETQ array_list (STRCAT array_list next_array)) (SETQ cyrnum (1+ cyrnum)) );else end );if end (IF (= point_list nil) (SETQ point_list (STRCAT cylinder_array "=[" objD1 "]; ")) (progn (SETQ next_list (STRCAT cylinder_array "=[" objD1 "]; ")) (SETQ point_list (STRCAT point_list next_list)) ) );if end (IF (= name_list nil) (progn (SETQ name_list (STRCAT "cy" cysnum "= hfCylinderZ(x," cylinder_array "," objD2 "); ")) (SETQ model_list (STRCAT "cy" cysnum)) );progn end (progn (SETQ next_name (STRCAT "cy" cysnum "= hfCylinderZ(x," cylinder_array "," ObjD2 "); ")) (SETQ name_list (STRCAT name_list next_name)) (SETQ next_model (STRCAT " | cy" cysnum)) (SETQ model_list (STRCAT model_list next_model)) );progn end );if end );progn-cylinder end );case cylinder end ) ;COND (setq objnum (1+ objnum)) ) ;while (SETQ write (OPEN write_file "w")) (WRITE-LINE "my_model(x[3], a[1]){" write) (WRITE-LINE array_list write) (WRITE-LINE "\n" write) (WRITE-LINE point_list write) (WRITE-LINE "\n" write) (WRITE-LINE name_list write) (WRITE-LINE "\n" write) (WRITE-LINE (STRCAT "my_model = "model_list ";") write) (WRITE-LINE "}" write) (CLOSE write) (setq array_list nil) (setq point_list nil) (setq name_list nil) (setq model_list nil) (print point_list) (setq OBJDATA nil) ) ;;;;;;;;;;;;;;;;;;;;;;;;;; delete hf_data.dat ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:delhf () (SETQ deldata (OPEN "c:/GT/hf/hf_data.dat" "w")) (WRITE-LINE "" deldata) (CLOSE deldata) (prompt "\ndeleted hf_data.dat\n") )