728x90
300x250

[Mechanical Element(기계요소설계)] 나사 설계부터 종이와 컴퓨터로 구현하기

2018-10-15

도도(Dodo) / root at localhost (127.0.0.1)

 

이번에 소개할 것은 "기계요소" 설계 중 나사를 설계하는 방법에 대해서 소개하고자 한다.

크게 어렵지 않은데 문제는 식이 매우 복잡한 수준으로 많다고 볼 수 있다.

가벼운 수준에서 컴퓨터 구현까지 해보고자 한다.

 


1. 사용 프로그램

 

FreeCAD, Inventor 등 설계가 가능하면 된다.
프로그래밍 언어가 지원되면 시뮬레이션 할 수 있다.


2. ASME 규격과 KS 규격

 

ASME 규격이나 KS 규격은 거의 큰 차이가 없다고 보면 된다.

유니파이나사(Unified screw Thread)란?
미국, 영국, 캐나다 3국의 협정에 의하여 정한 나사로 ABC 나사라고도 한다. 피치를 인치(inch)로 표시하는 인치계열(inch system)의 나사이고, 나사의 크기는 1 인치 사이에 산수로 표시하며, 나사산의 각은 60도이다. 나사의 모양은 미터나사와 같다.

 

 

 

 

표 1. 미터보통나사(KS B 0201)

 

나사의 호칭

피치p

 접촉높이

암나사

골지름

유효지름

안지름

 1

 2

 3

수나사

바깥지름

유효지름

골지름

M 1

 

 

0.25

0.135 

1.000

0.838

0.729

 

M1.1 

 

0.25

0.135

1.100

0.938

0.829

M 1.2

 

 

0.25

0.135

1.200

1.038

0.929

 

M 1.4

 

0.3

0.162

1.400

1.205

1.075

M 1.6

 

 

0.35

0.189

1.600

1.373

1.221

 

M 1.8 

 

0.35

0.189

1.800

1.573

1.421

 

 

 

표 2. 사다리꼴 나사의 기준 치수 (미터사다리꼴 나사)

 

나사의 호칭 

피치(p)

접촉높이

암나사

골지름

유효나사

안지름

수나사

바깥지름

유효지름

골지름

Tr 8 x 1.5

1.5

0.75

8.000

7.250

6.500

Tr 9 x 2

Tr 9 x 1.5

2

1.5

1

0.75

9.000

9.000

8.000

8.250

7.000

7.500

Tr 10 x 2

Tr 10 x 1.5

2

1.5

1

0.75

10.000

10.000

9.000

9.250

8.000

8.500

 

표 1의 치수 정보를 바탕으로 나사를 설계할 수 있다.

 

 

 


3. 나사의 기본 설계

 

나사를 설계하기 위한 기본적인 원리는 그림 1과 같이 표현할 수 있다.

 

 

 

그림 1. 나사의 곡선이 성립하는 원리의 예 - 도도(Dodo)

 

프로그램이 없는 경우: 종이로 실습해볼 수 있음. 종이를 둘둘 말아보면, 나사의 형태가 생긴다.

 

리드(lead): 나사를 1회전 돌렸을 때 축 방향으로 이동한 거리, l

리드각(lead angle):

원통의 지름(dimension): d

 

 

산과 산 사이, 골과 골 사이의 거리를 피치(Pitch)라고 한다.

 

 

 

그림 2. 피치의 원리 - 도도(Dodo)

 

유효지름 , 바깥지름 , 골지름 이라고 정의하자.

 

 

나사의 리드각은 골지름, 유효지름, 바깥지름에 대하여 각각 다를 수 있으나 나사의 역학적인 계산에는 유효지름에 대한 리드각 , 즉

 

 

 

 

 

 

 


5. 계산기 구현하기

 

 


6. FreeCAD 설치하기

 

다음은 FreeCAD 설치에 관한 것이다.


 


7. FreeCAD로 나사 구현하기


나사 구현을 하기에 앞서 간단한 드로잉을 시연하였다.

 

 

그림 9. 드로잉하기 - 도도(Dodo)

 

드로잉 연습을 바탕으로 FreeCAD Thread 구현에 대해서 시연하겠다.

 

 

영상 1. 나사의 모형 쓰레드 실습하기의 예 - 도도(Dodo)

 

[첨부(Attachment)]

Thread.fcstd

Thread.fcstd.zip

 

 






9. 참고자료(Reference)


1. How to fix FreeCAD ‘No module named WebGui’ on Ubuntu 18.04 – TechOverflow, Last Modified, Accessed by 2018-10-15, https://techoverflow.net/2018/06/03/how-to-fix-freecad-no-module-named-webgui-on-ubuntu-18-04/
2. Thread for Screw Tutorial - FreeCAD Documentation, Last Modified 2018-08-09 20:41, Accessed by 2018-10-15, https://www.freecadweb.org/wiki/Thread_for_Screw_Tutorial

반응형
728x90
300x250

[Manufacturing(제조, 생산)] 제조(생산)의 흐름 (기계)

 

이번에 소개할 것은 경영자(최고, 중간, 일선(현장))의 시야에서 받는 생산의 정보하고는 차이가 있을 수 있다.

정확히 표현하고자 하면, 제조 흐름이라고 표현하고 싶다. 이러한 정보에 관한 것은 "운영관리(Operation Mgt)"의 측면이 훨씬 강하다고 본다.

 

물론 이러한 어려운 지식이 없어도 제조 활동을 하는 데는 큰 문제는 되지 않는다. 다만, 비용관리나 계약관계 산정에 있어서 문제가 발생할 수 있다.

아무튼 여는 글을 복잡하게 소개했는데, 복잡한 건 사실 간단하게 생각하면 쉽게 접근할 수 있는 주제들이라고 주장한다.

 

그러나 혼선된 용어라고 해서 크게 이해하는데 무리가 있는 건 아니라고 주장한다.

 


1. 제조의 큰 흐름

 

 

 

기계에서의 제조의 큰 시스템은 다음과 같이 간단 명료하게 도출할 수가 있다.

 

 

그림 1-1. 제조의 큰 흐름(기계), 도도(Dodo)

 

그림 1-1과 같은 흐름이 될 수가 있다.

제조 활동은 크게 이러한 흐름으로 이뤄진다고 볼 수 있다.

 

이런 프로세스의 흐름도 "신기술"이나 "공법" 등이 발견되서 현장에 적용이 된다면, 생산 프로세스가 단축될 수도 있다.

 

[첨부(Attachment)]

Manufacturing-process.7z

 


2. 무엇을 만들 수 있는가?

 

How(어떻게, "하우")도 중요하지만, What(무엇, "왓")이라는 주어도 중요하다고 본다.

"전략(Strategy, "스트레이티지")"에서 소개할 수가 있는데, 혁신의 깔대기 이론이 있다.

 

깔대기 이론을 소개하면, "아이디어 수 천 가지가 있으면, 최종적으로는 선별되어서 3개, 1개 등으로 채택이 된다."라는 이론이 있다.

 

아이디어로 만들 수 있는 것이라면 다 만들어내야 한다.

 

"화학에 들어가는 제조장비", "전자에 들어가는 제조장비", "전기 케이블을 만드는 데 필요한 기계 장치류" 등을 만들 때도 사용될 수가 있다.

They can also be used to make "manufacturing equipment for chemistry," "manufacturing equipment for electrons," and "mechanical equipment for making electric cables."

 

                               표 2-1. 영어 단어 몇 개 소개

 

번호 

언어(Language)

단어(Word)

뜻(Mean)

한글(Korean)

1

영어(English)->

한글(Korean)

They

그들은,

("그들은"으로
번역되지만 않음.)

데이

2

영어(English)->

한글(Korean)

also

또한

올소

3

영어(English)->

한글(Korean)

equipment

장비

이큅멘트

4

영어(English)->

한글(Korean)

for

동안, ~에

5

영어(English)->

한글(Korean)

chemistry

화학

케미스트리

6

영어(English)->

한글(Korean)

electron

전자

전자

7

영어(English)->

한글(Korean)

electric

전기

일렉트릭

 


3. 맺음글

 

전기, 전자에도 특화된 캐드가 있다.

AutoCAD 등은 범용적인 캐드이며, OrCAD 등도 있을 수가 있다.

거의 전기, 전자에 사용되는 캐드는 비슷하면서도 차이점도 있긴 있다. 하지만 큰 맥락은 비슷하게 돌아간다.

 

아무튼 제조에 대해서 쉽게 이해가 되었으면 한다.

반응형
728x90
300x250

[Welding] 용접 기호와 제도(Welding symbols and design)

 

이번에는 용접 기호와 제도에 대해서 간략하게 소개합니다.

 


1. 용접 기호(Symbolic representation of welds)

용접기호(Symbolic representation of welds) 용접구조물의 설계  제작도면에 설계자가 생각하고 있는 이음 형식과 홈의 형상, 필릿의 다리길이, 용입깊이, 비드표면의 다듬질방법, 용접장소, 용접법 등을 나타내기위해 우리나라 산업규격에서 제정된 기호이다.

 

국내에서는 ISO2553(1992) 번역하여 한국산업규격(KSB0052)으로 정의함.

기호

특징

S

용접부의 단면치수 또는 강도(그루브깊이, 필릿다리길이, 플러그구멍지름, 스롯홈나비등

R

루트간격

A

그루브각도

L

단속필릿용접의 용접길이 또는 필요한 경우 용접길이

n

단속필릿용접, 플러그용접, 슬롯용접, 접용접등의수

P

단속필릿용접, 플러그용접, 슬롯용접, 접용접등의피치

T

특별지시사항(J,U 등의 루트반지름, 용접방법, 비파괴시험의 보조기호

-

표면 모양의 보조기호

G

다듬질방법의 보조기구

전체둘레 현장용접의 보조기호

전체둘레용접의 보조기구

 

 

용접 기호를 이해하기 위해서 간단한 표기 작성 방법을 적어봤습니다.

 


2. 용접제도

 

(1) 현장에서 GMAW으로 개선각은 45, root opening 2mm, bevel 깊이는 3mm, 용입깊이는 3.4mm 둘레를 용접하라.

         기호로 표시하면?

 

 

(예2)  용접기호로 용접한 형상을 그려 보시오.

 

 

 

-> Answer(Example)

    

   

 

(예3)  용접기호로 용접한 형상을 그려 보시오.

 

-> Answer

   

 

 

그림: design.7z

 


3. 용접 기호(KS B 0052)

 

용접 기호입니다. 용접의 종류에 따라서 사용하는 기호 또한 달라집니다.

 

 

 

 

용접에 사용되는 기호입니다. KS B 0052에 정의되어 있다고 하니 자세한 내용은 standard.go.kr에 접속해서 확인하면 될 것입니다.

 


4. 참고자료(Reference)

 

1. 라데츠월드, 티스토리, http://radetzworld.tistory.com/570, Accessed by 2018-07-17

 

반응형
728x90
300x250
[Mechanics] 역학을 공부하면서

 

역학이라는 게 정말 중요하다고 주장한다.

기계 가공을 하는데 있어서도 재료를 결정할 수가 있다.

 

재료역학에서 가장 중요한 식은 응력에 관한 식이다.

 


1. 재료역학에서 중요한 식

 

 

 

 수직응력(Normal Stress)

전단응력(Shearing Stress)

 

 

수직응력과 전단응력에 관한 식이다. 식으로는 큰 차이를 느끼진 못 한다.

그래서 몇 가지 간단한 시뮬레이션을 주제를 잡고 진행하게 되었다.

 

다음은 안전계수(factor of safety ; S)에 관한 식이다.

 

 

 

 안전계수(factor of safety ; S)

 

안전계수를 정하는 것은 정말 중요한 일이다.

말 그대로 재료를 사용하는데 있어서 파괴 등이 일어나지 않고, 적정한 범위를 유지하려면 중요한 식이다.

 

아래의 코드는 하드코딩(Hard-Coding)으로 작성한 자바 프로그램 코드이다.

 

 

 /*
 * Created: 2018-05-29
 * Subject: Calculate.java
 * Author: Dodo
 */

 public class Calculate {
 
      private final double PI = 3.14159265359;
 
      public Calculate() {
 
      }
 
      public double generalArea(double dimension) {
             return ( PI / 4 ) * (dimension * dimension);
      }
 
      public Stress getStress(Stress value) {
   
             double weight = value.getWeight();
             double area = value.getArea();
             double stress = weight / area;
  
             value.setStress(stress);
             return value;
     }

     public double getSafety(Stress allow, Stress yield) {
  
             double safety = allow.getStress() / yield.getStress();
             return safety;
     }

}

 Calculate.java

 

 

 /*
  * Created: 2018-05-29
  * Subject: Stress.java
  * Author: Dodo
*/

public class Stress {
 
       private double stress;
       private double weight;
       private double area;

   

       public Stress() {
            this.stress = 0;
            this.weight = 0;
            this.area = 0;
       }
 
       public Stress(double stress, double weight, double area) {
            this.stress = stress;
            this.weight = weight;
            this.area = area;
       }

 

       public double getStress() {
            return stress;
       }
 
       public void setStress(double stress) {
            this.stress = stress;
       }
 
       public double getWeight() {
            return weight;
       }
 
       public void setWeight(double weight) {
            this.weight = weight;
       }
 
       public double getArea() {
            return area;
       }
 
       public void setArea(double area) {
            this.area = area;
       }
  
 } 

 Stress.java

 

 /*
 * Created: 2018-05-29
 * Subject: Program.java
 * Author: Dodo
*/

 

 import java.io.File;
 import java.io.FileWriter;

 public class Program {
 
       private static final int MAX = 10000;
 
       public static void main(String[] args) {
              experiment();
       }
 
       public static void experiment() {
   
              String txt = "테스트입니다!!" ;
              String fileName = "test11.txt" ;      
       
              int retval1 = -1;
              int retval2 = -1;

 

              try{
                   // 파일 객체 생성
                   File file = new File(fileName) ;

                   // true 지정시 파일의 기존 내용에 이어서 작성
                   FileWriter fw = new FileWriter(file, true) ;

                   // 계산
                   Calculate calculate = new Calculate();

                   int count = 1;
      
                   double weight = 10;
                   double area = 0;  
                   double dimension = 0;
       
                   double resultStress = 0;
                   double targetMin = 8.1;
                   double targetMax = 9.4;

           

                   String strTxt ;
      
                   strTxt = "count,weight,dimension,area,stress,result";
                   // 파일안에 문자열 쓰기

                   fw.write(strTxt);
                   fw.write("\r\n");
                   fw.flush();
      
                   for ( int i = 0; i < MAX; i++ ) {
       
                      weight = i;
       
                      for ( int j = 0; j < MAX; j++ ) {
        
                           dimension = j;
                           area = calculate.generalArea(dimension);
        
                           resultStress = weight / area;
         
                           strTxt = count + "," + weight + "," + dimension + "," + area + "," + resultStress + " ,실험";
                
                           retval1 = Double.compare (resultStress, targetMin);
                           retval2 = Double.compare(resultStress, targetMax);
        
                           if ( retval1 > 0 && retval2 < 0 ) {
                                  strTxt = count + "," + weight + "," + dimension + "," + area + "," + resultStress + " ,참";
                           } // end of if
        
                           // 파일안에 문자열 쓰기
                          fw.write(strTxt);
                          fw.write("\r\n");
                          fw.flush();
        
                          count++;
         
                   } // end of for
      
               } // end of for

               // 객체 닫기
               fw.close();

        }catch(Exception e){
               e.printStackTrace();
        } // try~catch
       
    }
 
}

 Program.java

 

내가 찾고자 하는 것은 다른 것이 아니었다.

 

double weight = 10;
double area = 0;  

double dimension = 0;
       
double resultStress = 0;
double targetMin = 8.1; // (MPa)
double targetMax = 9.4; // (MPa)

 

주어진 응력(Sigma_{Min})은 8.1MPa, 응력(Sigma_{Max})은 9.4MPa이다.

이 범위에 부합하는 임의의 W, A, D을 결정할 수 있는 수치의 값이 어떠한지를 나는 찾고 싶었다.

 

 

 

이러한 주제이다.

사람이 풀라고 하면 못 푸는 문제이다.

 


맺음) 역학은 물체에 힘이 작용할 때 현상을 공부하는 것이다.

 

이러한 기본적인 식 이외에도 무수히 식이 많다.

다 외우는 건 한계가 있으며, 역학을 재미있게 공부하는 것은 현상을 이해하는 것이 중요하다고 본다.

반응형

+ Recent posts