2021년 10월 29일 금요일

FreeCAD (3) Mainpulator Workbench 를 설치하자

 Mainpulator Workbench를 필수로 설치해야겠다.


파트의 얼라인, 이동, 측정 등을 편하게 할 수 있는 외부 Add on 이다


설명 : https://wiki.freecadweb.org/Manipulator_Workbench

2021년 3월 20일 토요일

[C#] Serial 통신

[C#] Serial 통신 (작성 중)


목표

  • 시리얼 포트를 검색하여 콤보 박스를 만들고, 버튼으로 선택된 시리얼 포트를 열고 닫기
  • MVVM 모델로 구현

프로젝트 생성








참조


2018년 10월 27일 토요일

Python 공부 시작

https://wikidocs.net/book/1

윈도우10에서 ini 파일의 인코딩은 UTF-8을 쓰면 불편하다.

메모장으로 ini 파일을 열어서 편집후 UTF-8로 저장하면 파일 안에 BOM 코드가 추가되어 python에서 문제를 복잡하게 만든다.

좀 더 테스트하고 글을 정리해야겠다.

2017년 11월 29일 수요일

QCAD

사용기

QCAD에 대한 내용을 정리합니다.

회사 업무 때문에 Autocad를 써야 할 일이 생겼지만 자주 쓰는 일이 아니라서 구매하기는 그렇고, 대체할만한 무료 2D 프로그램을 찾다가 최종적으로 QCAD와 LibreCAD 중 선택하게 됐습니다.

LibreCAD 는 QCAD에서 파생된 프로그램인데 전에 설치해서 잠깐 써봤는데, 명령은 AutoCAD와 상당히 호환되는데 아직 불안정한 부분이 많아서 불편했습니다.

QCAD는 전에 사용해 본 바로는 AutoCAD와 명령이 다르지만 불안정하지는 않았습니다.

그래서 QCAD 를 사용하기로 결정했습니다.

설치

QCAD 홈페이지에서 다운 받아서 설치 합니다.

http://www.qcad.org

2017년 8월 8일 화요일

3D 프린터 사용기 [1] – 3D 프린터 구입, 조립

최근에 3D 프린터에 관심이 생겨서 이리저리 인터넷으로 3D 프린터에 대해 사전 조사를 한 뒤 큰맘 먹고 가장 저렴한 조립형 3D 프린터를 구입했습니다.
"Prusa i3 J버전" 을 구입했습니다.
http://neo3d.co.kr 에서 판매하는 제품이지요. 저는 좀 생소한 업체라서 약간 미심적어 디바이스마트를 통해 구입을 했습니다.

그런데 그게 저의 판단 착오였던것 같습니다. 디바이스마트에서 저의 주문 내역을 보고, neo3d 직원이 저의 주소를 잘 못 기재하여 배송에 일주일이 걸렸습니다.

지구상에서 가장 배송 서비스가 잘 되어 있는 우리나라에서 있어서는 안되는 상황이라 생각만 하고, 디바이스마트 고객센터에 전화도 하고, 뭐 이런 저런 우여곡절 끝에 어쨌든 안전하게 제품을 받았습니다.
image
생각보다 작은 사이즈가 우선 맘에 들었습니다. 내용물은 굳이 사진으로 남길 필요는 없겠다 싶었습니다. 판매 회사에서 꼼꼼하게 잘 포장해서 왔습니다.

조립형이니까 이제부터 길고 긴 조립 작업이 시작되었습니다.
실제 조립 작업보다 장난꾸러니 아들녀석 쫓아 내며, 아크릴 보호 필름 벗기는 시간이 절반 정도 걸린것 같습니다.

토요일 오후 2시 부터 자정까지 10시간 동안 작업하여 겨우 조립했습니다.
20170723_010813
집이 작아서 개인 작업실이 따로 없고, 아들에게 장난감 만드는 기계 사서 기차 만들어 줄테니 아빠에게 방을 달라고 설득해서 방 한쪽 테이블에 이렇게 제품을 설치 했습니다.

3D 프린터와의 첫 만남은 여기서 마쳐야겠네요.
차근차근 3D프린터 사용기를 정리해서 올리겠습니다.

2017년 3월 7일 화요일

C# 시계 만들기

 

C# 프로그래밍을 익히기 위해 디지털 시계를 만들어 보겠습니다.

1초 단위로 시간 표시가 바뀌는 간단한 프로그램이죠.

 

1. WPF 프로젝트를 생성하여 다음과 같이 비어있는 창을 하나 만듭니다.

image

2. Grid 와 Label 을 추가 합니다. Label 에는 다음과 같이 설정 합니다.

<Grid>
    <Label
        Content="Clock"
        FontSize="24"
        Grid.Column="0"
        Grid.Row="0"
        HorizontalContentAlignment="Center"
        VerticalContentAlignment="Center"
        x:Name="clock" />
</Grid>

그러면 다음과 같은 모양으로 창이 생성 됩니다.

image

이제 창 디자인은 완성 됐습니다. 본격적으로 C# 코딩을 해야겠네요.

우선 창의 “clock” 이라고 이름 붙인 Label 의 내용을 변경하는 코드를 넣어 보겠습니다.

그런데 WPF 에서 C#의 시작점 (Entry point)은 어디인지 모르겠네요.

이제 찾아보겠습니다.

image

요기 있네요. InitializeComponent(); 전/후 에서 초기화 과정을 추가 하면 된다고 어디선가 봤습니다.

그럼 Label 의 글자를 어디서 바꿔야 하는지 또 찾아 보겠습니다.

image

위와 같이 코드를 추가 했더니 다음과 같이 창이 생성 됐습니다.

image

이렇게 WPF 의 Entry point 를 알았네요.

 

다음 단계로 쓰레드를 생성하고, 1초 단위로 타이머 이벤트를 받아서 라벨 값만 바꿔주면 간단한 시계가 될거라 예상이 됩니다.

 

http://zheld.tistory.com/2

WPF의 타이머에 대해서는 위의 링크에서 잘 설명해 주셨네요.

제가 만들고 있는 시계 프로그램에 적용해 보겠습니다.

image

이제 완성 됐습니다. 컴파일 후 실행하면 1초 단위로 시간이 변경되는 것을 볼 수 있습니다.

 

TimeSpan.FromMilliseconds(0.01) 은 인터벌이 0.01 ms 단위로 발생하게 합니다. 예제에서 인터벌이 너무 짧게 잡혀서 Millisecond 가 아닌가 의심했었는데, 함수 이름대로 Millisecond 단위가 맞습니다.

2017년 1월 12일 목요일

창 크기를 고정하고 싶다

이전 글에서 SharpDevelop 로 첫번째 윈도우를 만들었는데, 크기가 마음대로 움직입니다. 크기를 고정하고 싶은데 이제야 알게 됐습니다.

image

디자인 탭을 선택하고, Window1.xaml 안에 있는 윈도우 객체(?)를 선택하면 오른쪽에 "속성" 이 나타납니다.

아래로 쭉 내리면 “ResizeMode” 라는 속성이 있는데 여기서  “NoResize”를 선택하면 크기가 고정되네요.

image

XAML 코드에는 아래와 같이 자동으로 추가 됩니다.


<?xml version="1.0" encoding="utf-8"?>
<Window
    x:Class="test_01.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="test_01"
Height="300"
Width="300"
ResizeMode="NoResize"
>
<Grid></Grid>
</Window>


프로그램을 실행하면 창 크기를 조절할 수 없게 됩니다.

Blogger 페이지 꾸미기

 Blogger 페이지 꾸미는 방법을 적어봅니다. 프로그램 코드 블럭을 잘 쓰고 싶은데 마땅한 방법이 안보이네요.