I am trying to draw a sphere and a rectangular box like this here. I tried

```
\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot-circleofsphere}
\begin{document}
\tdplotsetmaincoords{80}{110}
\begin{tikzpicture}[tdplot_main_coords,ultra thin,declare function={r=3;}]
\draw[ball color=gray,opacity=.5,tdplot_screen_coords] (0,0,0) circle (r);
\draw[densely dotted,thin](-r,0,0)circle(.6pt)node[scale=.5,above]{$A$}
--(0,r,0)circle(.6pt)node[scale=.5,above]{$B$}
--(r,0,0)circle(.6pt)node[scale=.5,above]{$C$}
--(0,-r,0)circle(.6pt)node[scale=.5,above]{$D$}--(-r,0,0)--(r,0,0) (0,r,0)--(0,-r,0)
(0,r,-r/sqrt 2)--(-r,0,-r/sqrt 2)circle(.6pt)node[scale=.5,below]{$A'$}
--(0,-r,-r/sqrt 2)circle(.6pt)node[scale=.5,below]{$D'$}
(-r,0,-r/sqrt 2)--(r,0,-r/sqrt 2) (0,r,-r/sqrt 2)--(0,-r,-r/sqrt 2)
(-r,0,0)--(-r,0,-r/sqrt 2) (0,-r,0)--(0,-r,-.6*r/sqrt 2) ;
\draw (0,r,-r/sqrt 2)circle(.6pt)node[scale=.5,below]{$B'$}--(r,0,-r/sqrt 2)circle(.6pt)node[scale=.5,below]{$C'$}--(0,-r,-r/sqrt 2)
(r,0,0)--(r,0,-r/sqrt 2) (0,r,0)--(0,r,-r/sqrt 2)
(0,-r,-r/sqrt 2)--(0,-r,-.6*r/sqrt 2)
;
\tdplotCsDrawLatCircle{r}{0}
\tdplotCsDrawLatCircle{r}{-45}
\end{tikzpicture}
\end{document}
```
How to draw like above?You can try this code
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{3dtools}% https://github.com/marmotghost/tikz-3dtools
\usepackage{tikz-3dplot-circleofsphere}
\begin{document}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\tikzset{reverseclip/.style={overlay,insert path={(-12383.99999pt,-12383.99999pt) rectangle (12383.99999pt,12383.99999pt)}}}
\begin{tikzpicture}[3d/install view={phi=70,theta=80},scale=1,line cap=butt,
line join=round,visible/.style={draw,solid},
hidden/.style={draw,very thin,cheating dash},declare function={r = 3; h = -r/sqrt(2);}]
\path
(0,0,0) coordinate (O)
(-r,0,0) coordinate (A)
(0,r,0) coordinate (B)
(r,0,0) coordinate (C)
(0,-r,0) coordinate (D)
(-r,0,h) coordinate (A')
(0,r,h) coordinate (B')
(r,0,h) coordinate (C')
(0,-r,h) coordinate (D')
;
\path[3d coordinate ={(O')=0.5*(A') + 0.5*(C')}];
\path[3d/circumcircle center={A={(A)},B={(B)},C={(C)}}] coordinate (T);
\pgfmathsetmacro{\myR}{sqrt(TD("(A)-(B)o(A)-(B)"))/2} ;
\draw[hidden] (O') circle[radius=\myR];
\path pic{3d/circle on sphere={R=r,C={(O)}, P={(T)}}};
\draw[3d/screen coords,hidden] (O) circle[radius=r];
\begin{scope}
\clip (D) -- (D') -- (C') -- (C) --cycle [reverseclip];
\draw[3d/screen coords] (O) circle[radius=r];
\end{scope}
\begin{scope}[tdplot_screen_coords]
\clip (O) circle[radius=r][reverseclip];
\draw[visible] (B) -- (B');
\end{scope}
\begin{scope}[tdplot_screen_coords]
\clip (O) circle[radius=r];
\draw[hidden] (B) -- (B');
\end{scope}
\foreach \p in {A,B,C,D,A',B',C',D',O,O'}
{\draw[fill=black] (\p) circle (1.2 pt);}
\foreach \p/\g in {A/90,B/120,C/60,D/60,A'/150,B'/-90,C'/-90,D'/-90,O/60,O'/210}
{\path (\p)+(\g:3mm) node{$\p$};}
\draw[hidden]
(A) -- (B) -- (C) -- (D) -- cycle
(D') -- (A') -- (B') (A) -- (A') (A) -- (C) (B) -- (D) (A') -- (C') (B') -- (D');
\draw[visible] (C) -- (C') (D) -- (D') (D') -- (C') -- (B');
\end{tikzpicture}
\end{document}
```
