25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
5.3KB

  1. %&tex
  2. \documentclass{standalone}
  3. \usepackage{tikz}
  4. \usepackage{siltex}
  5. \usetikzlibrary {calc,arrows.meta,positioning,patterns,math}
  6. % Compliant PDF
  7. \usepackage[a-3u]{pdfx}
  8. %\input{graphics/tics.tikz}
  9. \begin{document}
  10. \begin{tikzpicture}[x=0.9cm, y=0.9cm, nodes={text width=4.5cm,anchor=north west,draw=none}]
  11. \def \markerradius {0.5};
  12. \def \angle {40};
  13. \def \startangle {-90-\angle};
  14. \def \stopangle {-90+\angle};
  15. \def \length{4};
  16. \def \thick{0.3};
  17. \def \clampoffset{2};
  18. \pgfmathsetmacro{\clamppos}{\clampoffset-\markerradius*sin(\angle)};
  19. \pgfmathsetmacro{\side}{\markerradius*(1-cos(\angle))};
  20. \def \clampsection {++(${\side}*(0,1)$) arc[start angle=\startangle,end angle=\stopangle,radius=\markerradius] -- ++(${-1*\side}*(0,1)$)};
  21. \def \blockdistance {2.8}
  22. \def \blockpos {(0,0)};
  23. \def \markerdrop {0.5};
  24. \def \spacing {5.6};
  25. \def \yspacing {4.6};
  26. \tikzset{
  27. block/.pic=
  28. {
  29. \def \height {1.5};
  30. \def \width {1};
  31. \draw[pattern = north west lines] (\clamppos,-1) -- (\clamppos,-\markerdrop) -- \clampsection -- ++(0,-0.2) -- (\blockdistance,-\markerdrop-0.2) -- (\blockdistance,1) -- (\blockdistance+\width,1) -- (\blockdistance+\width,-1);
  32. },
  33. upperclamp/.pic=
  34. {
  35. \def \startangle {90+\angle};
  36. \def \stopangle {90-\angle};
  37. \def \side {-\markerradius*(1-cos(\angle))};
  38. \draw[fill=lightgray] (0,0) -- (${\clamppos}*(1,0)$) coordinate(a) -- \clampsection coordinate(b) -- (\length,0) -- ++(0,\thick) -- (0,\thick);
  39. },
  40. lowerclamp/.pic=
  41. {
  42. \draw[fill=lightgray] (0,0) -- (${\clamppos}*(1,0)$) -- \clampsection -- ++(0,-\thick) -- (0,-\thick);
  43. },
  44. marker/.pic=
  45. {
  46. \draw[fill=gray] (0,0) circle(\markerradius);
  47. }
  48. }
  49. \def \nodepos {(\blockdistance-4.0,2.9)};
  50. \begin{scope}[shift={(0*\spacing,0)}]
  51. \def \eex {1.3};
  52. \def \eey {-0.5};
  53. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance+\eex}))};
  54. \draw \blockpos pic {block};
  55. \node at \nodepos {1. Marker is clamped in springloaded end-effector.};
  56. \draw (2-\eex,{\markerradius+\eey*-1}) pic {marker};
  57. \begin{scope}[shift={(-\eex,-\eey)}]
  58. \draw (0,0) pic {lowerclamp};
  59. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  60. \end{scope}
  61. \end{scope}
  62. \begin{scope}[shift={(1*\spacing,0)}]
  63. \def \eex {0};
  64. \def \eey {0};
  65. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance+\eex}))};
  66. \draw \blockpos pic {block};
  67. \node at \nodepos {2. End-effector is positioned on the holder.};
  68. \draw (2,\markerradius) pic {marker};
  69. \begin{scope}[shift={(-\eex,-\eey)}]
  70. \draw (0,0) pic {lowerclamp};
  71. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  72. \end{scope}
  73. \end{scope}
  74. \begin{scope}[shift={(2*\spacing,0)}]
  75. \def \eex {0};
  76. \def \eey {0.5};
  77. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance+\eex}))};
  78. \draw \blockpos pic {block};
  79. \node at \nodepos {3. End-effector is moved down, forcing the upper clamp open.};
  80. \draw (2,\markerradius-\markerdrop) pic {marker};
  81. \begin{scope}[shift={(-\eex,-\eey)}]
  82. \draw (0,0) pic {lowerclamp};
  83. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  84. \end{scope}
  85. \end{scope}
  86. \begin{scope}[shift={(0*\spacing,-\yspacing)}]
  87. \def \eex {0};
  88. \def \eey {0.7};
  89. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance+\eex}))};
  90. \draw \blockpos pic {block};
  91. \node at \nodepos {4. End-effector continues down, leaving the marker in the holder.};
  92. \draw (2,\markerradius-\markerdrop) pic {marker};
  93. \begin{scope}[shift={(-\eex,-\eey)}]
  94. \draw (0,0) pic {lowerclamp};
  95. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  96. \end{scope}
  97. \end{scope}
  98. \begin{scope}[shift={(1*\spacing,-\yspacing)}]
  99. \def \eex {1};
  100. \def \eey {0.7};
  101. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance+\eex}))};
  102. \draw \blockpos pic {block};
  103. \node at \nodepos {5. The longer arm allows the end-effector to move sideways.};
  104. \draw (2,\markerradius-\markerdrop) pic {marker};
  105. \begin{scope}[shift={(-\eex,-\eey)}]
  106. \draw (0,0) pic {lowerclamp};
  107. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  108. \end{scope}
  109. \end{scope}
  110. \begin{scope}[shift={(2*\spacing,-\yspacing)}]
  111. \def \eex {1};
  112. \def \eey {0};
  113. \pgfmathsetmacro{\clampangle}{max(0,atan2(\eey,{\blockdistance-\eex}))};
  114. \draw \blockpos pic {block};
  115. \node at \nodepos {6. Return to begin position, now without marker.};
  116. \draw (2,\markerradius-\markerdrop) pic {marker};
  117. \begin{scope}[shift={(-\eex,-\eey)}]
  118. \draw (0,0) pic {lowerclamp};
  119. \draw (0,1) pic[rotate=\clampangle] {upperclamp};
  120. \end{scope}
  121. \end{scope}
  122. \draw (4.2,-1.3*\yspacing) -- (4.2,2.9);
  123. \draw[shift={(\spacing,0)}] (4.2,-1.3*\yspacing) -- (4.2,2.9);
  124. \draw(-1.4,-1.5) -- ++(3*\spacing,0);
  125. \end{tikzpicture}
  126. \end{document}