EXCEL로 5밀리 방안 선반 CAD(준비)
묘사하기 전에 모든 도형 삭제
여러 번 시도할 수 있도록 TEST 매크로를 실행하기 전에 활성 시트의 모든 셰이프를 삭제합니다.
Sub 全図形削除()
For Each S In ActiveSheet.Shapes
S.Delete
Next S
End Sub
EXCEL 방안의 1마리를 5mm로 한다
1칸의 사각형을 B2에 작성합니다. B2의 높이, 폭을 변경하면
붙어 사각형도 모양을 바꾸므로 5mm 사각형이 되도록 조정합니다.
도형의 서식 설정을 보면, 종횡 19 픽셀로 5 mm방안을 할 수 있는 것을 알았습니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
End Sub
Sub 方形(R, Optional T = 1)
Set R = Range(R)
With ActiveSheet.Shapes.AddShape(T, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = vbBlack
.Fill.Visible = False
End With
End Sub
방안에 도형을 맞추는 비율
20 칸 x20 사각형과 100x100 셰이프를 비교합니다.
사각형이 10.05cm x 10.05cm
사각형이 3.53cm x 3.53cm
비율 2.847 ≒ 10.05/3.53
그래서 함수 RF_로 보정을 합니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
End Sub
'Function RF_(L, Optional 倍率 = 1)
' RF_ = L
'End Function
Function RF_(L, Optional 倍率 = 1)
RF_ = L * 2.847 * 倍率
End Function
Sub 図形(R, Optional T = 1, Optional RH = 100, Optional RW = 100, Optional B = 1)
With ActiveSheet.Shapes.AddShape(T, Range(R).Left, Range(R).Top, RF_(RW, B), RF_(RH, B))
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Fill.Visible = False
End With
End Sub
XZ 축을 표시합니다.
선반의 경우는 세로 방향이 X축. 횡방향이 Z축이 되기 때문에 D10이 원점이 되도록 XZ축을 표시시킵니다.
셀 너비, 셀 높이 변경 시 도형이 변형, 이동하지 않도록 도형의 placement 를 xlFreeFloating
합니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
Call XZ_AXIS("D10")
For Each S In ActiveSheet.Shapes
S.Placement = xlFreeFloating
Next S
End Sub
Sub XZ_AXIS(Optional R = "D10", Optional X = 60, Optional Z = 80, Optional B = 1)
GX = Range(R).Top
GZ = Range(R).Left
RZ = Range(R).Width
X = RF_(X, B)
Z = RF_(Z, B)
With ActiveSheet.Shapes.AddLine(GZ - RZ, GX, GZ + Z, GX).Line
.ForeColor.RGB = vbRed
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
With ActiveSheet.Shapes.AddLine(GZ, GX - X / 2, GZ, GX + X / 2).Line
.ForeColor.RGB = vbBlue
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
End Sub
여러가지 덧붙여, 아래 그림과 같이 됩니다.
Reference
이 문제에 관하여(EXCEL로 5밀리 방안 선반 CAD(준비)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matumoto_onga/items/f587ea214b12b80da43a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Sub 全図形削除()
For Each S In ActiveSheet.Shapes
S.Delete
Next S
End Sub
1칸의 사각형을 B2에 작성합니다. B2의 높이, 폭을 변경하면
붙어 사각형도 모양을 바꾸므로 5mm 사각형이 되도록 조정합니다.
도형의 서식 설정을 보면, 종횡 19 픽셀로 5 mm방안을 할 수 있는 것을 알았습니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
End Sub
Sub 方形(R, Optional T = 1)
Set R = Range(R)
With ActiveSheet.Shapes.AddShape(T, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = vbBlack
.Fill.Visible = False
End With
End Sub
방안에 도형을 맞추는 비율
20 칸 x20 사각형과 100x100 셰이프를 비교합니다.
사각형이 10.05cm x 10.05cm
사각형이 3.53cm x 3.53cm
비율 2.847 ≒ 10.05/3.53
그래서 함수 RF_로 보정을 합니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
End Sub
'Function RF_(L, Optional 倍率 = 1)
' RF_ = L
'End Function
Function RF_(L, Optional 倍率 = 1)
RF_ = L * 2.847 * 倍率
End Function
Sub 図形(R, Optional T = 1, Optional RH = 100, Optional RW = 100, Optional B = 1)
With ActiveSheet.Shapes.AddShape(T, Range(R).Left, Range(R).Top, RF_(RW, B), RF_(RH, B))
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Fill.Visible = False
End With
End Sub
XZ 축을 표시합니다.
선반의 경우는 세로 방향이 X축. 횡방향이 Z축이 되기 때문에 D10이 원점이 되도록 XZ축을 표시시킵니다.
셀 너비, 셀 높이 변경 시 도형이 변형, 이동하지 않도록 도형의 placement 를 xlFreeFloating
합니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
Call XZ_AXIS("D10")
For Each S In ActiveSheet.Shapes
S.Placement = xlFreeFloating
Next S
End Sub
Sub XZ_AXIS(Optional R = "D10", Optional X = 60, Optional Z = 80, Optional B = 1)
GX = Range(R).Top
GZ = Range(R).Left
RZ = Range(R).Width
X = RF_(X, B)
Z = RF_(Z, B)
With ActiveSheet.Shapes.AddLine(GZ - RZ, GX, GZ + Z, GX).Line
.ForeColor.RGB = vbRed
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
With ActiveSheet.Shapes.AddLine(GZ, GX - X / 2, GZ, GX + X / 2).Line
.ForeColor.RGB = vbBlue
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
End Sub
여러가지 덧붙여, 아래 그림과 같이 됩니다.
Reference
이 문제에 관하여(EXCEL로 5밀리 방안 선반 CAD(준비)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matumoto_onga/items/f587ea214b12b80da43a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
End Sub
'Function RF_(L, Optional 倍率 = 1)
' RF_ = L
'End Function
Function RF_(L, Optional 倍率 = 1)
RF_ = L * 2.847 * 倍率
End Function
Sub 図形(R, Optional T = 1, Optional RH = 100, Optional RW = 100, Optional B = 1)
With ActiveSheet.Shapes.AddShape(T, Range(R).Left, Range(R).Top, RF_(RW, B), RF_(RH, B))
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Fill.Visible = False
End With
End Sub
선반의 경우는 세로 방향이 X축. 횡방향이 Z축이 되기 때문에 D10이 원점이 되도록 XZ축을 표시시킵니다.
셀 너비, 셀 높이 변경 시 도형이 변형, 이동하지 않도록 도형의 placement 를 xlFreeFloating
합니다.
Sub TEST()
Call 全図形削除
Call 方形("B2")
Call 方形("B2:U21")
Call 図形("B2", 1, 100, 100)
Call XZ_AXIS("D10")
For Each S In ActiveSheet.Shapes
S.Placement = xlFreeFloating
Next S
End Sub
Sub XZ_AXIS(Optional R = "D10", Optional X = 60, Optional Z = 80, Optional B = 1)
GX = Range(R).Top
GZ = Range(R).Left
RZ = Range(R).Width
X = RF_(X, B)
Z = RF_(Z, B)
With ActiveSheet.Shapes.AddLine(GZ - RZ, GX, GZ + Z, GX).Line
.ForeColor.RGB = vbRed
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
With ActiveSheet.Shapes.AddLine(GZ, GX - X / 2, GZ, GX + X / 2).Line
.ForeColor.RGB = vbBlue
.Weight = 1.2
.DashStyle = msoLineDashDot
End With
End Sub
여러가지 덧붙여, 아래 그림과 같이 됩니다.
Reference
이 문제에 관하여(EXCEL로 5밀리 방안 선반 CAD(준비)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matumoto_onga/items/f587ea214b12b80da43a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)