obcpdiag:={{{ar,1,{1.5,2,0}},{ar,2,{3,2,0}},{ob,3,{0,0,0}},{ob,4,{2,0,0}},{ob,5,{4,0,0}}},{{dom,6,{1.5,2,0},{0,0,0}},{cod,7,{1.5,2,0},{2,0,0}},{dom ,8,{3,2,0},{2,0,0}},{cod,9,{3,2,0},{4,0,0}}}}

dnodes[diagramdata_]:=diagramdata[[1]];darrows[diagramdata_]:=diagramdata[[2]]

basediagram3D[diagramdata_,gap_,ahs_,thickness_]:={Arrowheads[ahs],Directive[Thickness[thickness]],Text[Style[#[[1]],Plain],#[[3]],Background->White]&/@dnodes[diagramdata],Arrow[{#[[3]],#[[4]]},Scaled[gap]]&/@darrows[diagramdata],Text[Style[#[[1]],Plain],(1/2)(#[[3]]+#[[4]]),Background->White]&/@darrows[diagramdata]}

cone[diagramdata_,vertexname_,vertexloc_,gap_,ahs_,key_,thickness_]:={Arrowheads[ahs],key,Text[vertexname,vertexloc],Directive[Thickness[thickness]],Background->Transparent,Arrow[{vertexloc,#},Scaled[gap]]&/@dnodes[diagramdata][[All,3]]}

limitplace[diagramdata_]:=Module[{nc=Length[dnodes[diagramdata]],xcoor=Plus @@dnodes[diagramdata][[All,3]][[All,1]],ycoor=Plus@@dnodes[diagramdata][[All,3]][[All,2]]},{xcoor/nc,ycoor/nc,.6nc}]

lp:=limitplace[obcpdiag]

darkgreen:=RGBColor[0,.7,0]

Manipulate[Show[Graphics3D[{basediagram3D[obcpdiag,.0007,.02,.002],cone[obcpdiag,cp,lp+{1.6,1,0},.0007,.02,c1,.002],Text[Style[ar,Plain,c2],lp-{.75,.75,0},Background->White],
Text[Style[rfac,Plain,c1],(1/2)(lp+{1.6,1,0}+{1.5,2,0}),Background->White],Text[Style[lfac,Plain,c1],(1/2)(lp+{1.6,1,0}+{3,2,0}),Background->White],Text[Style[dom,Plain,c2],(1/2)(lp-{.75,.75,0}+{0,0,0}),Background->White],Text[Style[cod,Plain,c2],(1/2)(1.05(lp-{.75,.75,0})+.95{4,0,0}),Background->White],Text[Style[comp,Plain,c3],(1/2)(2 lp+{1.6,1,0}-{.75,.75,0}),Background->White],
Directive[c1,Thickness[c4]],Arrow[{{lp+{1.6,1,0},{0,0,0}}},Scaled[.0007]],Arrow[{{lp+{1.6,1,0},{4,0,0}}},Scaled[.0007]],Directive[c2,Thickness[c4]],Arrow[{{lp-{.75,.75,0},{0,0,0}}},Scaled[.0007]],Arrow[{{lp-{.75,.75,0},{4,0,0}}},Scaled[.0007]],
Directive[c3],Arrow[{{lp+{1.6,1,0},lp-{.75,.75,0}}},Scaled[.0007]]},
ImageSize->400,BaseStyle->{FontFamily->"Arial",FontSize->12},Boxed->False,ImagePadding->40,ViewPoint->{-9,30,-20}]],{c1,{Transparent,Blue},ControlType->Checkbox},{c2,{Transparent,darkgreen},ControlType->Checkbox},{c3,{Transparent,Red},ControlType->Checkbox},{c4,{.002,.004},ControlType->Checkbox},ControlPlacement -> Left,SaveDefinitions->True]