반응형

이번 포스트에서는 현재 열려있는 도큐먼트를 특정 이미지 포멧으로 저장하는 기능에 대하여 알아 보겠습니다.

포토샵은 이미지를 편집하는 다재 다능한 툴이지만 자동화 툴로 사용할 생각까지는 하지 않습니다. 일반 적인 이미지 포멧을 변환해주는 툴들은 여럿 있지만 PSD 이미지를 이용해서 특정 조건을 설정하여 이미지를 저장하려면 포토샵 밖에는 방법이 없습니다.

예를 들면 100 개의 PSD 파일을 열어서 각각 가장 최상위에 있는 또는 특정 레이어만 이미지로 저장해야 한다면 일반적인 툴로는 불가능하죠. 하지만 포토샵 스크립트를 이용하면 손쉽게 처리가 가능합니다.

오늘은 그러한 사전 조건이 완료되었다는 전제 하에 이미지로 파일을 저장하는 방법을 알아보겠습니다.

 

  • 먼저 저장할 포멧을 설정
  • 해당 포멧에 대한 상세 옵션 설정
  • 저장할 파일 지정
  • 파일로 저장
  • 저장한 뒤 파일 닫기 (옵션)

요정도의 과정이 되겠습니다.

어렵지 않지만 처음 해보시는 분은 난감한 코드죠.

제가 샘플을 올려 드릴테니 가져다가 조금씩 바꿔가면서 사용하시면 됩니다.

 

PNG 파일 저장 옵션

var pngSaveOptions = new PNGSaveOptions();
pngSaveOptions.embedColorProfile = true; // 컬러 프로필 저장 옵션
pngSaveOptions.matte = MatteType.NONE;
pngSaveOptions.quality = 100;
pngSaveOptions.transparency = true;
pngSaveOptions.interlaced = true;

// 저장할 때는 
var cFile = new File("저장될 경로 및 파일명.png")
app.activeDocument.saveAs(cFile, pngSaveOptions, true, Extension.LOWERCASE)

 

JPEG 저장 옵션

var JPGOpt = new JPEGSaveOptions();
JPGOpt.embedColorProfile = True
JPGOpt.quality = 5  // 0~12 , 12 is best quality
JPGOpt.formatOptions = FormatOptions.STANDARDBASELINE;
JPGOpt.matte = MatteType.WHITE

/* mattetype
MatteType.BACKGROUND
MatteType.BLACK
MatteType.FOREGROUND
MatteType.NETSCAPE
MatteType.NONE
MatteType.SEMIGRAY
MatteType.WHITE
*/ 

// 저장할 때는 
var cFile = new File("저장될 경로 및 파일명.jpg")
app.activeDocument.saveAs(cFile, JPGOpt, true, Extension.LOWERCASE)

 

GIF 저장 옵션

var GIFOpt = new GIFSaveOptions();
GIFOpt.palette = Palette.LOCALSELECTIVE
GIFOpt.ForcedColors = ForcedColors.BLACKWHITE
GIFOpt.matte = MatteType.NONE
//GIFOpt.Dither = Dither.DIFFUSION
//GIFOpt.ditherAmount = 75
GIFOpt.interlaced = true
GIFOpt.colors = 256

// 저장할 때는 
var cFile = new File("저장될 경로 및 파일명.gif")
app.activeDocument.saveAs(cFile, GIFOpt, true, Extension.LOWERCASE)

 

Targa(TGA) 저장 옵션

var TGAOpt = new TargaSaveOptions
TGAOpt.alphaChannels = true
TGAOpt.rleCompression = false // 압축여부
TGAOpt.resolution = TargaBitsPerPixels.THIRTYTWO

/* Targa Bits Per Pixels
TargaBitsPerPixels.SIXTEEN
TargaBitsPerPixels.THIRTYTWO
TargaBitsPerPixels.TWENTYFOUR
*/
var cFile = new File("저장될 경로 및 파일명.tga")
app.activeDocument.saveAs(cFile, TGAOpt, true, Extension.LOWERCASE)

 

BMP 저장 옵션

BMPOpt = new BMPSaveOptions();
BMPOpt.alphaChannels = true;
BMPOpt.depth = BMPDepthType.BMP_R5G6B5;

/* BMP Depth Type
BMPDepthType.BMP_A1R5G5B5
BMPDepthType.BMP_A4R4G4B4
BMPDepthType.BMP_A8R8G8B8
BMPDepthType.BMP_R5G6B5
BMPDepthType.BMP_R8G8B8
BMPDepthType.BMP_X1R5G5B5
BMPDepthType.BMP_X4R4G4B4
BMPDepthType.BMP_X8R8G8B8
BMPDepthType.EIGHT
BMPDepthType.FOUR
BMPDepthType.ONE
BMPDepthType.SIXTEEN
BMPDepthType.THIRTYTWO
BMPDepthType.TWENTYFOUR
*/

// 저장할 때는 
var cFile = new File("저장될 경로 및 파일명.bmp")
app.activeDocument.saveAs(cFile, BMPOpt, true, Extension.LOWERCASE)

 

Save Foe Web 저장 옵션 (PNG)

var exptOpt = new ExportOptionsSaveForWeb 
exptOpt.format = SaveDocumentType.PNG
// saveforweb 인 경우 COMPUSERVEGIF, JPEG, PNG-8, PNG-24, and BMP 로만 가능함
exptOpt.transparency = true 
exptOpt.blur = 0.0 
exptOpt.includeProfile = false 
exptOpt.interlaced = false 
exptOpt.optimized = true 
exptOpt.quality = 100 
exptOpt.PNG8 = true // png 8 비트로 저장이 필요한 경우
exptOpt.colors = 128

// 관련하여 보다 상세한 옵션은 레퍼런스를 참고 하세요.

// 저장할 때
var expFile = new File("저장할 경로 및 파일명.png")
cDoc.exportDocument (expFile,ExportType.SAVEFORWEB,exptOpt)  // saveAS 가 아닙니다. 중요!

 

마지막에 saveForWeb 옵션을 사용해 보았는데요. 많은 분들이 웹용으로 이미지를 올리거나 할때는 이 옵션을 주로 사용하실 거라 생각합니다. 이때는 saveAs 가 아닌 exportDocument 를 이용하여 저장하게 되므로 주의 하시면 됩니다.

 

옵션은 스크립트 중 어디에 적어 도 상관 없습니다. 포토샵 자바스크립트는 첫줄부터 실행되기는 하지만 모든 코드를 미리 읽어 둔후 실행하므로 위에 예제와 같이 옵션과 저장 기능이 딱 붙어 있을 필요는 없습니다. 통상 저의 경우에는 저장 옵션들을 스크립트 가장 상단에 적어두고 코드 작성을 시작하기는 합니다.

 

관련하여 제가 설명드리지 못한 부족한 부분은 레퍼런스를 참고하시면 되는데요. 코딩에 관심이 있으시다면 반드시 레퍼런스를 받으셔서 본인이 작성하는 코드와 관련된 설명을 보시기 바랍니다. 학원이나 강좌보다 더욱 훌륭한 선생님이 될 것 입니다.

2019/06/12 - [DEV/Adobe Script] - 포토샵 스크립트 레퍼런스, 도움말 사용하기

 

포토샵 스크립트 레퍼런스, 도움말 사용하기

포토샵 스크립트 역시 다른 개발언어와 마찬가지로 도움말이 있습니다. 레퍼런스라고 해야할까요. 사실 개발자라고 해도 모든 명령어와 프라퍼티, 메소드를 외우고 있을 수는 없기 때문에 잘 만들어진 레퍼런스가..

diy-dev-design.tistory.com

 

그럼 이만~

 

 

 

 

 

반응형
반응형

이번 포스트에서는 매직완드를 스크립트로 실행하는 방법을 설명 드리겠습니다.

 

매직완드 스크립트

포토샵의 매직 완드는 일반적인 스크립트로는 작성이 불가능하기 때문에 scriptListner 를 통하여 추출된 코드를 응용하여 개발을 해야 합니다. scriptListner 는 포토샵에서 이루어지는 거의 모든 기능에 대하여 출력을 해주기 때문에 일반적인 스크립트로 작성이 불가능한 기능에 대하여 개발을 해야 할 때 이용하기 좋은 멋진 플러그인 입니다.

나중에 한번 따로 설명을 드리도록 하겠습니다.

 

복잡하게 설명할 것 없이 바로 코드 갑니다. 이런 류의 코드는 직접 짜는 것이 거의 불가능하기 때문에 그냥 복붙하셔서 사용하시는 것이 가능 좋겠습니다.

function selectbyMagicWand(_x, _y, tolnc, anti, conti,merg){
    var idsetd = charIDToTypeID( "setd" );
    var desc103 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
        var ref53 = new ActionReference();
        var idChnl = charIDToTypeID( "Chnl" );
        var idfsel = charIDToTypeID( "fsel" );
        ref53.putProperty( idChnl, idfsel );
    desc103.putReference( idnull, ref53 );
    var idT = charIDToTypeID( "T   " );
        var desc104 = new ActionDescriptor();
        var idHrzn = charIDToTypeID( "Hrzn" );
        var idPxl = charIDToTypeID( "#Pxl" );
        desc104.putUnitDouble( idHrzn, idPxl, _x );
        var idVrtc = charIDToTypeID( "Vrtc" );
        var idPxl = charIDToTypeID( "#Pxl" );
        desc104.putUnitDouble( idVrtc, idPxl, _y );
    var idPnt = charIDToTypeID( "Pnt " );
    desc103.putObject( idT, idPnt, desc104 );
    var idTlrn = charIDToTypeID( "Tlrn" );
    desc103.putInteger( idTlrn, tolnc );
    var idMrgd = charIDToTypeID( "Mrgd" );
    desc103.putBoolean( idMrgd, merg );
    var idAntA = charIDToTypeID( "AntA" );    
    desc103.putBoolean( idAntA, anti );
    var idCntg = charIDToTypeID( "Cntg" );
    desc103.putBoolean( idCntg, conti );
executeAction( idsetd, desc103, DialogModes.NO );

}

 

총 6개의 입력값을 갖는 함수로 정리를 하였습니다.

각 함수의 인자는 아래와 같은 속성을 갖습니다.

  • _x : 숫자 : 매직완드의 포인터 X좌표 
  • _y : 숫자 :  매직완드의 포인터 Y 좌표
  • tolnc : 숫자 0  ~ 255 : tolerance, 선택된 색상 값의 확장 범위. 0 일경우 완전히 같은 색상일 경우만 선택된다.
  • anti : boolean : True or False 를 입력하며 경계 영역의 부드러운 처리여부
  • conti :  boolean : True or False 를 입력하며 연속된 영역 안에서만 할 것인지 화면 전체로 할 것인지
  • merge : boolean : True or False 를 입력하며 현재 레이어만 대상으로 할것인지 전체 레이어로 할 것인지

바로 아래 옵션에 해당되는 옵션들 입니다.

 

시제 사용하실 때는 아래와 같이 사용하시면 됩니다.

// 좌상단 1,1 위치의 색상을 pick 하여 선택 영역 생성
selectbyMagicWand(0, 0, 0, false, true, true) 

 

참고로 x, y 좌표 값은 -1 한 값을 입력하시면 됩니다.

 

사용하시면서 궁금하신 내용이 있으시면 뎃글 남겨주세요~

감사합니다.

 

반응형
반응형

엑셀 파일을 이용하여 정말 다양한 작업이 가능합니다. 계산이며 표만들기며 각종 정보를 분석하거나 데이터 화 시키는 작업 등 정말 할 수 있는 일이 무궁무진 하죠. 그런데 가끔 엑셀을 이용하여 특정 정보를 별도로 텍스트 등으로 저장해야 하는 경우가 있습니다. 개발 쪽에서 어떤 데이터 리스트를 csv 형태로 요구하였는데 그러기 위하여는 굳이 정보를 재 가공 해야 하는 경우라던가 자료의 특성상 데이터를 가공하는 위험 부담이 있는 경우에는 좀 부담스럽죠.

필요한 필드만 또는 특정 필드의 값들을 특정 형태로 가공해서 저장하고 싶을 때 스크립트를 이용하여 파일 쓰기를 해 줄 수 있다면 큰 도움이 될 겁니다.

아니면 HTML 이나 CSS 처럼 엑셀에 있는 정보들을 특정한 포멧에 맞게 뽑고 싶은데 엑셀의 저장 기능에는 그런것은 없기 때문에 코딩을 할 수 있게 되면 활용 범위가 더욱 커지고 불필요한 노동을 줄일 수 있습니다.

 

오늘은 엑셀에서 텍스트 파일 형태로 파일을 추출하는 간단한 방법을 알아보도록 하겠습니다.

 

코드는 대충 아래와 같습니다.

Open FILE_NAME For Output As #1
Print #1, YOUR_STRING
Close #1

아주 간단하죠? 간단해서 제가 자주 사용하는 코드 입니다.

FILE_NAME 부분에 실제 저장되어야 할 파일 명을 경로를 포함하여 적어주시고요 저장하고 싶은 텍스트를 YOUR_STRING 부분에 넣으면 해당 파일을 기록하고 닫는 코드 입니다.

손쉽게 사용하기 위하여 함수 형태로 만들면 아래와 같이 되겠습니다. 물론 너무 짧아서 굳이 함수로 만들 필요도 없기는 하지만요.

Sub writeMyFile (byVal strPath as string, byVal currentText as string)
	Open strPath For Output As #1
	Print #1, currentText
	Close #1
End Sub

'사용할때 '

sub test()
	dim myString as string
	myString = "hello" & vbNewLine
	myString = myString & "DIY" & vbNewLine
	myString = myString & "DEV" & vbNewLine
	myString = myString & "DESIGN" & vbNewLine
	
    writeMyFile "d:\test.ini", myString
end sub

 

아래 test 라는 함수에서 실제 텍스트를 써주는 부분을 호출하고 아래와 같은 파일이 만들어 지게 됩니다.

보시는 것처럼 vbNewLine 과 같은 줄바꿈 기호 등을 줄의 맨뒤에 추가하여 여러줄을 동시에 기록하는 것도 가능합니다.

제가 만든 test 부분에서 기록하고 싶은 여러 내용을 포멧에 맞게 변수에 저장을 한 뒤 마지막에 파일을 써주는 함수에 보내면 원하는 형식으로 텍스트 파일이 만들어 지는 것이죠.

 

자 손쉽게 엑셀의 자료를 텍스트 파일로 기록해 주는 함수를 만들어 보았습니다. 스트링 형식으로 저장된 내용을 그냥 기록만 해주면 되기 때문에 해당 기능을 이용하여 자바스크립트, CSS, HTML 등의 형식으로 손쉽게 저장하 실 수 있습니다.

참고로 저는 이미지를 붙여 넣는 기능과 함께 해당 이미지를 웹 브라우저를 통해 미리 볼 수 있는 html 을 뽑는 스크립트를 자주 사용합니다. 웹 브라우저에서 이미지를 보게 되면 파일이 많아도 화면 이동 속도가 거의 느려지지 않고 이미지와 함께 전달하게 되면 사용자가 간단하게 이미지 리스트를 확인 할 수 있기 때문입니다. 또한 이미지 수정 시 별도로 엑셀등을 수정하지 않고 저장된 이미지만 교체하면 바로 수정된 결과를 볼수 있는 장점도 있기 때문입니다.

사용하시는 분마다 용도는 다르겠지만 텍스트를 추출하는 기능만으로도 아주 커다란 효과를 낼 수 있을지 모릅니다.

 

자 그럼 오늘은 이만~

2019/07/12 - [DEV/VBA] - [vba] 자동화를 위하여 엑셀의 영역 설정하는 방법

2019/08/12 - [DEV/VBA] - [VBA] 문자열 가지고 놀기

2019/07/12 - [DEV/VBA] - [vba] For 구문 이용하기와 offset 사용 해 보기

2019/09/20 - [DEV/VBA] - [VBA] 엑셀에 그림 자동으로 넣기

반응형
반응형

아내가 둘째를 데리고 생일파티에 갔습니다.

첫째는 친구들 만난다고 나가버렸죠.

 

그럼 집에는 ~~~ 

 

끼야호!!  저 혼자만 남았습니다.

 

드디어 남자들의 비밀스런 미션이 시작될 차례 입니다. 조용히 현관문을 걸어 잠그고..

 

 

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

 

 

자 베란다 방충망을 청소해 보겠습니다.

요즘 미세먼지로 인해 창문 여는 일이 거의 없습니다. 하지만 어쩌다 환기라도 하려고 베란다를 열다보면 뿌옇게 방충망에 내려앉은 먼지로 인해 이걸 해야 하나 말아야 하나 걱정이 앞섭니다. 그래서 방충망을 청소해 보기로 하였습니다.

방충망 청소하는 방법이라며 소다랑 뭐랑 섞어서 스폰지로 문지르니 뭐가 좋니 어쩌니 해도 샤워기로 물청소하는 것만큼 깨끗하게 청소되는 것은 없죠. 사실 해보면 그냥 떼어 내서 청소하는게 훨씬 마음편하고 어렵지도 않습니다.

 

자 한번 보세요.

우선 베란다에 물을 좀 뿌려야 하니 간단히 정리를 좀 해주시고 창문을 충분히 열어 주세요. 방충망을 안으로 가져올 수 있게요.

 

방충망 분리 방법을 알려드리겠습니다.

먼저 위쪽으로 들어줍니다. 그럼 아래쪽 레일이 빠집니다.

그런다음 방충망 아래쪽을 집 바깥쪽으로 살짝 내립니다. 안쪽이 아니라 바깥쪽이에요. 무겁지 않으니 여성분들도 하실 수 있습니다. 

다시 아파트 바깥쪽으로 윗부분을 들어올린 다음 아래 쪽부터 집안으로 모시면 되겠습니다.

 

 

참 쉽죠?

다시한번 순서대로

1. 방충망 양 옆을 단단히 잡고 위로 들어올린다.

2. 아래쪽을 바깥쪽으로 살짝 내린다.

3. 위쪽을 바깥쪽으로 들어올린다

4. 아래쪽부터 집안으로 가지고 들어온다.

5. 어느쪽이 위쪽이었는지 잘 기억한다 (중요) 

 

요렇게 하시면 됩니다.

그런다음 베란다에 눕혀 놓고 샤워기로 쏴~~~ 하면 끝나는 거죠.

잠시동안 물기를 말리고 분해의 역순으로 다시 끼워 넣으면 됩니다.

사실 10분도 안걸리는 초간단 청소입니다. 하고나면 너무나 개운하기도 하죠.

 

굳이 뭘 좀 쉽게 해보겠다고 청소 액을 만들고 허리아프게 닦고 하실 필요가 없습니다. 그냥 떼어내서 물한번 쫙 뿌리면 끝이니까요.

마지막으로 바닥 물끼까지 싹 닦고 나면 베란다 청소까지 함께 되므로 일석 이조가 아닐수 없습니다.

 

꺠끗하게 물기까지 닦은 베란다 바닥과 깨끗해진 방충망

 

끝으로 위에서 말씀 드렸던 방충망의 위아래 구분을 잘 기억하셔야 합니다. 거꾸로 끼면 이게 안들어 갑니다. 위쪽이 좀더 깊에 패여있어서 밀어 올려서 방충망을 끼워 넣을 수 있게 되어 있고 아래쪽에는 방충망이 부드럽게 움직이도록 레일 바퀴가 들어있거든요. 한번에 여러개를 떼어서 청소하면 이게 햇갈릴 수 있답니다.

한번 위치나 방향이 햇갈리기 시작하면 애먹습니다. 위치도 원래 위치에 끼워야 딱 들어맞지 다른 창에 끼우면 먼지 막아주는 틈새 솔기 등의 위치가 맞지 않게 됩니다.

한두개씩 떼어서 청소하시는 것을 추천합니다.

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

 

2019/05/31 - [청소장인] - 아파트 유리창 청소하기

 

아파트 유리창 청소하기

아파트 고층에 살면 여러가지 장점이 있게 마련인데 그중의 제일은 아무래도 전망이 좋다는 점일 것이다. 물론 우리아파트는 최근에 바로 앞에 고층 아파트가 들어왔기 때문에 그 장점 하나가 사라져 버렸다. 반대..

diy-dev-design.tistory.com

2020/03/11 - [청소장인] - 곰팡이와의 전쟁 아파트 베란다 곰팡이 제거하기

 

곰팡이와의 전쟁 아파트 베란다 곰팡이 제거하기

이사를 하며 집을 떠날때도 들어올때도 항상 눈에 밟히는 게 있다면 바로 곰팡이가 아닐까 싶습니다. 떠나는 입장에서는 들어올 사람에게 드는 미안한 마음이겠고 들어갈 입장에서는 내가 살아갈 공간에 곰팡이가..

diy-dev-design.tistory.com

 

반응형
반응형

정말 지긋지긋한 마이크로 소프트 입니다. 저는 VBA 를 하면서 이번 포스트 내용만큼 어의가 없는 경우는 없었던거 같습니다. 왜 때문이냐고요? 바로 아주 단순한 셀 넓이를 VBA 를 이용하여 지정하는 방법 때문입니다.

자 제가 왜 이런 반응을 보이는가 하면요.

엑셀 VBA 에서 셀의 넓이 즉 range.columnWidth 를 지정할때 정말 독특한 단위와 방법을 사용하기 때문입니다.

일단 셀의 넓이는 다음의 두가지 방법으로 구할 수 있습니다. 그런데 그 두가지가 반환하는 값의 정체를 보면 정말 당황스럽기 짝이 없죠.

Range.Width [읽기]
 : 셀의 넓이를 point 로 반환한다. 

Range.ColumnWidth [읽기/쓰기]
 : (나름데로 해석한 결과)셀의 넓이를 현재 지정된 폰트의 "Normal" 인 상태를 기준으로 하는 글자 하나의 크기를 1로 하고 마진값을 추가한 값을 설정 또는 반환한다.

 

 

????????????

 

 

저게 뭔가요.. 

물론 글자가 짤리 않도록 셀의 폭을 지정하는 기능 아주 좋습니다. 글자수만 알면 되는거죠. 훌륭합니다. 네.

그런데 왜 Width 는 읽기 만 가능하며 point 나 pixel 같은 값으로는 설정이 안되는 것인가요? 저와 같은 그래픽 디자이너는 이미지를 붙이든 뭘해도 pixel 을 기준으로 값을 정의하는게 일상인데요. 뜬금없이 왠 글자의 크기를 이용하여 margin 까지 덧붙여 크기가 지정되는 걸까요? 게다가 현재 지정된 폰트의 Normal 상태 일때 라니... 만약 글자 크기가 달라지거나 스타일이 달라지면 같은 값을 지정해도 폭이 달라질 수 있다는 이야기가 됩니다.

 

해외 사이트들을 구글링 해보았으나 마땅한 답이 없더군요. 

그래서 그냥 코드를 짜 보았습니다.

VBA function : Pixel to ColumnWidth

Sub setColumnWidth(ByVal mRng As Range, ByVal targetWidth_pixel As Integer)

    'point = pixel * 0.75'
    'pixel = point / 0.75'
    'columnWidth = char Width + margin(fixed)'
    
    Dim cWidth_A As Double
    Dim cWidth_B As Double
    Dim cWidth_margin As Double
    Dim columnWidthRatio As Double
    Dim testColumnWidth As Double
    
    Dim cWidth As Double
    
    testColumnWidth = 10
    
    
    ' 가로 크기 지정시 발생되는 margin 을 알아보기 위하여 1배, 2배 크기일때 유지되는 margin 을 구해보자'
    mRng.ColumnWidth = testColumnWidth
    cWidth_A = mRng.Width   '(point)'
    
    mRng.ColumnWidth = testColumnWidth * 2
    cWidth_B = mRng.Width   '(point)'
    
    ' 항상 고정으로 유지되는 margin 크기 확인 (point)'
    cWidth_margin = cWidth_B - ((cWidth_B - cWidth_A) * 2)
        
    'point 값이 columnWidth 로 변환되기 위한 ratio 를 구한다. 이때 전체 넓이에서 위에서 구한 margin 을 생략하고 계산한다. '
    'columnWidthRatio : point --> columnWidth'
    columnWidthRatio = mRng.ColumnWidth / (cWidth_B - cWidth_margin)
    
    '최종 크기 지정'
    mRng.ColumnWidth = (targetWidth_pixel - (cWidth_margin / 0.75)) * 0.75 * columnWidthRatio
        
        
End Sub

 

약간 복잡해 보이지만 함수 형태로 만들어 놓았으므로 코드를 가져다가 그냥 사용하시면 됩니다. 인자로 크기를 조정해야 하는 셀과 pixel 기준의 크기를 입력해 주시면 되고요. 아래와 같이 사용하시면 됩니다.

Sub test()
    Dim rngA As Range    
    Set rngA = [d3]
    
    setColumnWidth rngA, 256
End Sub

 

이렇게 하면 D3 에 해당하는 column 의 폭이 256 pixel 로 설정이 됩니다.

 

코드를 좀 보시는 분은 금방 아시겠지만 원리는 다음과 같습니다.

columnWidth 는 고정된 단위가 아니므로 point 라는 단위를 이용하여 columnWidth 로 환산하기 위한 ratio 를 구해야 합니다. columnWidth / Width 하면 되는거죠. 그런데 여기에 함정이 있습니다. 

columnWidth 라는 값이 반환하는 값이 글자의 폭 + margin 이기 때문에 위와 같이 단순 계산을 하면 정확한 값으로 설정을 할 수가 없습니다. margin 만큼씩 계속 오차가 있는 것이지요. 그래서 margin 을 구하는 과정이 선행되었던 것입니다.

제가 몇번 테스트 해본 결과 글자을 속성을 중간에 바꾸지 않는다면 margin 의 값은 항상 일정한 것을 확인하였기 때문에 columnWidth 를 10 , 20 으로 두배 차이나게 각각 적용했을때의 Width 를 이용하여 변하지 않는 크기를 찾아내 해당 크기를 margin 으로 지정하였습니다.

결과적으로는 현재 구해진 Width(point) - margin(point) 로 ColumnWidth 를 나누어 주게 되면 point 값을 columnWidth로 환산 하기 위한 비율이 구해지게 되는 것이죠.

끝으로 입력된 픽셀에서 margin 에 해당되는 픽셀 크기를 빼 준뒤 point 로 전환한 다음 위에서 구한 비율을 곱해주게 되면 정확하게 pixel 에 대응되는 columnWidth 를 구할 수 있게 됩니다.

 

정말 저는 미국인들이 inch 를 사용하는 이유도 모르겠고 microSoft 사에서 위와 같이 독특한 단위만 입력하도록 개발해놓은 이유도 알 수가 없습니다. 

이번 기회로 저역시 좋은 공부가 되었기에 포스트로 남깁니다.

도움이 되셨거나 본 포스트가 괜찮으셨으면 공감 부탁드립니다~

 

2020/01/30 - [분류 전체보기] - [vba] 셀 속성 조정하기 (넓이, 높이, 숨기기, 테두리 등)

 

[vba] 셀 속성 조정하기 (넓이, 높이, 숨기기, 테두리 등)

이번 포스트에서는 vba 를 이용하여 셀의 속성을 조정하는 방법을 설명 드리겠습니다. 엑셀은 단순한 표의 형식을 취하고 있지만 셀의 간격이나 테두리 등의 속성을 자유롭게 조정할 수 있어 다양한 서식에 사용하..

diy-dev-design.tistory.com

2019/09/20 - [DEV/VBA] - [VBA] 엑셀에 그림 자동으로 넣기

 

[VBA] 엑셀에 그림 자동으로 넣기

안녕하세요. 이번 강좌에서는 엑셀 시트에 있는 이미지 파일 경로를 이용하여 셀에 이미지를 붙여넣는 스크립트를 한번 알아 보겠습니다. 엑셀에 이미지를 몇장 붙여 넣는 거야 그림 삽입하기로 손쉽게 넣으면 되..

diy-dev-design.tistory.com

2019/08/30 - [DEV/VBA] - [VBA]RGB 색상 값이 들어있는 셀에 셀 색상 지정하기

 

[VBA]RGB 색상 값이 들어있는 셀에 셀 색상 지정하기

이번 강좌에서는 셀에 입력되어 있는 컬러 값을 이용하여 셀의 색상을 지정하는 방법을 알아보도록 하겠습니다. 디자이너 분들이라면 언제가 한번쯤은 엑셀 시트에 자신이 정의한 컬러 값을 정리해서 보내야 하는..

diy-dev-design.tistory.com

2022.12.02 - [DEV/VBA] - [excel vba] 16진수를 10진수로, 10진수를 16진수로 변경

 

[excel vba] 16진수를 10진수로, 10진수를 16진수로 변경

오늘은 간단한 VBA 코드를 하나 소개해 드릴까 합니다. 프로그래밍을 하다보면 16진수를 10진수로 바꾸거나 10진수를 16진수로 바꾸어야 하는 경우가 종종 있습니다. 읭? 16 진수? 라고 하실수도 있

diy-dev-design.tistory.com

 

 

반응형
반응형

이번 포스트에서는 vba 를 이용하여 셀의 속성을 조정하는 방법을 설명 드리겠습니다.

엑셀은 단순한 표의 형식을 취하고 있지만 셀의 간격이나 테두리 등의 속성을 자유롭게 조정할 수 있어 다양한 서식에 사용하기 적합한 훌륭한 워드 프로세서 입니다.

데이터의 타입이나 종류에 따라 현재 엑셀 시트의 표를 자동으로 설정해주는 것이 필요한 경우가 있습니다. 

예를 들면 csv 로 내려받은 단순한 정보들을 시트에 올리고 필요한 정보와 필요하지 않은 정보의 열을 구분하여 표시해 준다던가 아예 불필요한 열이나 행은 숨김 처리를 할 수도 있고요. 주요 행의 테두리 정보를 구분하여 보여주어야 하는 경우도 있겠습니다. 또한 서실을 vba로 만들어 놓으면 어떤 다른 인원에 의해 조정된 폼을 원래 지정한 형식으로 완벽하고 빠르게 설정하는 것도 가능할 것입니다.

이번 포스트에서는 아래의 내용을 다루려고 합니다.

  • 행의 높이를 조절하는 방법
  • 열의 넓이를 조정하는 방법
  • 행 또는 열을 숨기거나 숨김 취소 하는 방법
  • 테두리 선을 지정하는 방법
  • 테두리 선의 모양을 지정하는 방법

 

 

엑셀 VBA 를 이용하여 행(row) 높이를 지정하는 방법

Sub changeCellStyle()

    Dim mySht As Worksheet
    Dim myCell As Range
    
    Set mySht = ActiveSheet
    Set myCell = mySht.Range("B2") ' 원하는 행의 셀을 지정
    
    
    ' 지정한 셀(행)의 높이를 32로 설정한다.
    myCell.RowHeight = 32
    
    '픽셀 기준으로 입력하고 싶다면 0.75 를 곱하세요.
    myCell.RowHeight = 32 * 0.75


End Sub

 

행의 높이를 Pixel 을 기준으로 지정해야 하는 경우 pixel size * 0.75 를 해주면 됩니다.

예를 들면 이미지를 붙여넣는 등의 작업을 할때 이미지의 크기가 150 이라면 150 * 0.75 의 값을 셀의 크기에 지정을 하면 됩니다. 아래와 같이 말이죠.

 

 

엑셀 VBA 를 이용하여 열(column)의 넓이를 지정하는 방법???

여기서 셀의 폭을 지정하는 방법은 갑자기 이야기가 달라집니다. 저는 그래픽 디자이너 이므로 당연히 픽셀 기준으로 셀의 넓이를 정해주고 싶거든요. 여기서 미치고 팔딱 뛰는 상황이 생겨나게 됩니다.

정말 저는 마이크로소프트라는 회사를 이해할 수가 없습니다. 

이부분은 아래 포스팅을 참고해 주세요. 작성하면서도 맨붕이네요.

2020/02/05 - [DEV/VBA] - [VBA] 셀의 넓이를 픽셀로 지정하기 (set column width by pixels)

 

[VBA] 셀의 넓이를 픽셀로 지정하기 (set column width by pixels)

정말 지긋지긋한 마이크로 소프트 입니다. 저는 VBA 를 하면서 이번 포스트 내용만큼 어의가 없는 경우는 없었던거 같습니다. 왜 때문이냐고요? 바로 아주 단순한 셀 넓이를 VBA 를 이용하여 지정하는 방법 때문입..

diy-dev-design.tistory.com

 

 

행 또는 열을 숨기거나 숨김 취소하는 방법

Sub changeCellStyle()
    
    Dim mySht As Worksheet
    Dim myCell As Range
    
    Set mySht = ActiveSheet
    Set myCell = mySht.Range("B2") ' 원하는 행의 셀을 지정'
    
	
    ' 선택한 셀이 있는 모든 행을 숨김처리할 때'
    myCell.EntireRow.Hidden = True
    
    ' 선택한 셀이 있는 모든 행을 숨김취소 할때'
    myCell.EntireRow.Hidden = False

End Sub

 

숨기거나 해제 하는 것은 간단하죠?

entireRow 라는 개체를 이용하여 전체 행에 대한 지정을 한뒤 hidden 이라는 프라퍼티로 숨기거나 숨기지 않도록 설정 할 수 있습니다.

열 (column) 을 숨기거나 해제 하는 것도 완전히 동일합니다.

아래와 같이 entireRow 대신 entireColumn 으로 사용하면 됩니다.

    myCell.EntireColumn.Hidden = True
    
    myCell.EntireColumn.Hidden = False

 

 

테두리의 선을 지정 (해제) 하는 방법

선택한 셀 또는 행의 모든 테두리를 없애는 방법

Sub changeCellStyle()
    
    Dim mySht As Worksheet
    Dim myCell As Range
    
    Set mySht = ActiveSheet
    Set myCell = mySht.Range("B2") ' 원하는 행의 셀을 지정
    
    ' 선택한 셀의 테두리를 없애는 방법 '
    myCell.Borders.LineStyle = xlNone
    
    '선택한 행전체의 테두리를 없애는 방법
    myCell.EntireRow.Borders.LineStyle = xlNone
    
    
End Sub

 

선택한 셀의 테두리를 지정하는 방법

Sub changeCellStyle()
    
    Dim mySht As Worksheet
    Dim myCell As Range
    
    Set mySht = ActiveSheet
    Set myCell = mySht.Range("B2") ' 원하는 행의 셀을 지정
    
    '선택한 행전체의 테두리를 없애는 방법
    myCell.EntireRow.Borders.LineStyle = xlNone
    
    
    
    ' 선택한 셀의 왼쪽 테두리만 보통의 실선으로 보여주는 방법 '
    myCell.Borders(xlEdgeLeft).LineStyle = xlContinuous
    
    ' 선택한 셀의 오른쪽 테두리만 보통의 실선으로 보여주는 방법 '
    myCell.Borders(xlEdgeRight).LineStyle = xlContinuous
    
    ' 선택한 셀의 위쪽 테두리만 보통의 실선으로 보여주는 방법 '
    myCell.Borders(xlEdgeTop).LineStyle = xlContinuous
    
    ' 선택한 셀의 아래쪽 테두리만 보통의 실선으로 보여주는 방법 '
    myCell.Borders(xlEdgeBottom).LineStyle = xlContinuous
    
   ' 선택한 셀의 테두리를 보통의 실선으로 보여주는 방법 '
    myCell.Borders.LineStyle = xlContinuous
    
End Sub

제가 방향별로 지정하는 방법을 적어 두었으니 필요한 내용을 추려다가 사용하시면 됩니다.

 

 

테두리의 선의 속성을 변경하는 하는 방법

만약 아래쪽 선만 두껍게 지정하고 싶다면?

' 선택한 셀의 아래쪽 테두리만 두꺼운 실선으로 보여주는 방법 '
    myCell.Borders(xlEdgeBottom).Weight = xlThick
    myCell.Borders(xlEdgeBottom).LineStyle = xlContinuous

요렇게 해주시면 됩니다.

참고로 라인 스타일을 xlContinuous 말고 점선이나 다양한 스타일로 적용하는 것도 가능합니다.

  • xlContinuous 연속선입니다.
  • xlDash 파선입니다.
  • xlDashDot 교대로 연결된 파선과 점선입니다.
  • xlDashDotDot 파선과 두 개의 점선입니다.
  • xlDot 점선입니다.
  • xlDouble 이중선입니다.
  • xlLineStyleNone 선이 없습니다.
  • xlSlantDashDot 기울어진 파선입니다.

 

위에 소개해드린 여러가지 속성들을 조합하면 하나의 완성된 폼을 자동으로 생성하는 것이 가능합니다.

한번 짜 놓을 때는 귀찮을 수 있지만 수도없이 계속해서 폼을 맞추어주어야 하는 어떤 상황이라면 자동화 개발을 하는것이 정신건강이나 육체건강에 좋겠죠.

 

셀의 색상을 채워넣는 방법은 이전 포스트를 참고해 주세요.

2019/08/30 - [DEV/VBA] - [VBA]RGB 색상 값이 들어있는 셀에 셀 색상 지정하기

 

[VBA]RGB 색상 값이 들어있는 셀에 셀 색상 지정하기

이번 강좌에서는 셀에 입력되어 있는 컬러 값을 이용하여 셀의 색상을 지정하는 방법을 알아보도록 하겠습니다. 디자이너 분들이라면 언제가 한번쯤은 엑셀 시트에 자신이 정의한 컬러 값을 정

diy-dev-design.tistory.com

이렇게 간단하게 vba 를 이용하여 셀의 모양을 조정하는 것이 가능합니다.

어렵게 생각치 마시고 위에 설명드릴 방법을 다양하게 응용하여 자신에게 맞는 자동화 툴을 구성하시기 바랍니다.

2020/09/04 - [DEV/VBA] - [vba] 엑셀 이미지 리스트로 일괄 다운로드 받기

 

[vba] 엑셀 이미지 리스트로 일괄 다운로드 받기

안녕하세요. 오늘은 엑셀 리스트로 가지고 있는 웹 이미지 경로를 이용하여 일괄 다운로드 하는 방법을 소개해 드릴까 합니다. 인터넷에 찾아보면 이런저런 다운로더들이 있는데요. 입맛에 맞

diy-dev-design.tistory.com

2020/06/22 - [DEV/VBA] - [vba] 초등학교 연산 자동 문제집 - 곱셈 추가

 

[vba] 초등학교 연산 자동 문제집 - 곱셈 추가

안녕하세요 주인장입니다. 코로나로 인한 개학연기로 아이들이 집안에서만 딩굴딩굴 거려 답답하신가요? 아이들에게 신나는 연산 문제를 내 주는건 어떨까요? ?? 는 아니고 VBA 로 제가 그동안

diy-dev-design.tistory.com

2019/12/06 - [DEV/VBA] - [vba] 하위폴더 내의 모든 파일 정보 가져오기

 

[vba] 하위폴더 내의 모든 파일 정보 가져오기

일을 하다 보면 가끔 업무를 진행하던 경로 하위에 있는 데이들의 리스트를 만들어야 하는 경우가 있습니다. 하나의 폴더라면 어떻게 해보겠는데 그 폴더가 하위 뎁스가 연속해서 있고 저장되

diy-dev-design.tistory.com

감사합니다.

반응형
반응형

오늘 소개해 드릴 스크립트는 간단한 내용이지만 일반 적인 스크립트상으로 개발이 불가능하기에 경우에 따라는 아주 유용한 스크립트가 되겠습니다.

우리는 작업 중 상당한 빈도로 포토샵 레이어의 컨텐츠 영역만을 선택하여야 하는 경우가 있습니다. 

레이어 영역으로 선택하기

이럴때 단축키로 [Ctrl + 레이어 썸네일 클릭] 하는 방법으로 선택영역을 만들어 내는데요. 이 기능이 javascript reference 로는 구현이 불가능 합니다. 

오늘은 바로 그 스크립트로 레이어 영역 선택하는 방법를 소개해 드릴까 합니다.

코드는 아래와 같습니다.

function selectBylayer (lname) {    
  var idsetd = charIDToTypeID( "setd" );
      var desc1 = new ActionDescriptor();
      var idnull = charIDToTypeID( "null" );
          var ref1 = new ActionReference();
          var idChnl = charIDToTypeID( "Chnl" );
          var idfsel = charIDToTypeID( "fsel" );
          ref1.putProperty( idChnl, idfsel );
      desc1.putReference( idnull, ref1 );
      var idT = charIDToTypeID( "T   " );
          var ref2 = new ActionReference();
          var idTrsp = charIDToTypeID( "Trsp" );
          var idLyr = charIDToTypeID( "Lyr " );
          ref2.putEnumerated( idChnl, idChnl, idTrsp );
          ref2.putName(idLyr,lname)
      desc1.putReference( idT, ref2 );
  executeAction( idsetd, desc1, DialogModes.NO );
}

바로 이 코드 입니다. 자바스크립트의 문법을 이용하고는 있지만 레퍼런스에 나와있는 것과는 사뭇 다른 형태의 코드 인데요. 아마로 PS 내부에서 동작하는 방식을 자바스크립의 문법을 통하여 열거해 놓은 것이 아닐까 생각됩니다.

해당 코드를 본인의 스크립트 하단에 붙여 넣고 기능을 사용하면 되는데요. 

function selectBylayer (lname)  에서 "lname" 에 해당 하는 부분에 레이어의 이름을 적어 넣으면 해당 레이어의 영역이 선택이 됩니다.

만약 선택해야 하는 레이어 이름이나 종류에 따라 아래와 같이 사용하면 됩니다.

// 선택해야 할 레이어의 이름이 "Layer 0" 이라면 
selectBylayer ("Layer 0");

// 선택해야 할 레이어의 이름은 모르겠고 항상 첫번째 레이어라면
var cDoc = app.activeDocument;
selectBylayer (cDoc.layers[0].name);

// 선택해야 할 레이어가 가장 마지막 레이어라면
var cDoc = app.activeDocument;
selectBylayer (cDoc.layers[cDoc.layers.length-1].name);

 물론 코드 하단에는 위에 제가 올려드린 코드가 함께 존재해야 동작이 되니 참고하세요.

 

 

 

 

 

이상으로 스크립트로 레이어 영역을 선택하는 방법을 소개해 드렸습니다.

 

 

감사합니다.

 

2020/04/02 - [DEV/Adobe Script] - [포토샵스크립트] color fill 하기

 

[포토샵스크립트] color fill 하기

이번 강좌에서는 포토샵 스크립트를 이용하여 color fill 기능을 사용하는 방법을 알려 드리겠습니다. 포토샵에서 아주 많이 사용하는 기능이지만 일반적인 스크립트에서 구현이 되지 않아 답답하셨죠? 제가 올려..

diy-dev-design.tistory.com

2020/02/14 - [DEV/Adobe Script] - [포토샵스크립트] 매직완드 기능 스크립트로 실행하기

 

[포토샵스크립트] 매직완드 기능 스크립트로 실행하기

이번 포스트에서는 매직완드를 스크립트로 실행하는 방법을 설명 드리겠습니다. 포토샵의 매직 완드는 일반적인 스크립트로는 작성이 불가능하기 때문에 scriptListner 를 통하여 추출된 코드를 응용하여 개발을..

diy-dev-design.tistory.com

2019/12/11 - [DEV/MAX SCRIPT] - 3DS MAX 스크립트로 초간단 다이얼로그 창 , UI 버튼 만들기

 

3DS MAX 스크립트로 초간단 다이얼로그 창 , UI 버튼 만들기

3DS MAX 스트립트를 이용하여 스크립팅을 하기 시작하면 MAX 로 할 수 있는 일이 너무나 많고 빠르게 진행된다는 것을 알 수 있게 됩니다. 이 놀라운 기능들을 스크립트를 매번 실행시키는 것이 번거롭고 여러가지..

diy-dev-design.tistory.com

2019/09/03 - [DEV/Adobe Script] - [photoshop script] 포토샵 스크립트로 특정 영역 선택하기

 

[photoshop script] 포토샵 스크립트로 특정 영역 선택하기

이번 강좌에서는 스크립트를 이용하여 selection 을 만들어 보고 만들어진 selection 영역에 색상을 fill 하는 스크립트를 작성하여 보도록 하겠습니다. 단순한 기능이지만 알아두면 유용하게 사용될 수 있답니다...

diy-dev-design.tistory.com

 

반응형
반응형

[불편한 리뷰 카테고리는 제품의 장점이나 홍보용 내용은 모두 제외하고 보통의 블로그에서 언급하지 않는 불편한 점, 제가 사용해보고 느끼는 개선이 필요하다고 생각되는점에 대하여 올리는 글 입니다. 흔한 특징, 장점은 손쉽게 검색 가능한 정보들이 널리고 널렸으니 장점 위주로 리뷰하지는 않습니다.]

 

요즘은 집에 공기 청정기 하나 쯤은 모두 가지고 있을 거라 생각합니다. 저희 집에도 삼성 공기 청정기 AX60N50xx 제품이 하나 있는데요. 뭐 디자인도 괜찮고 먼지 측정도 잘 되는 것 같아 만족하고 사용중에 있습니다.

 

그런데 여러분~ 공기청정기가 사실 먼지 농도 측정이나 그런 부분을 빼면 fan 으로 공기를 순환시켜주는 장치에 불과하다는 것을 알고 계신가요? 공기의 순환 구조 중간에 장착된 필터가 실제 공기 청정 역할을 하고 있는 것이죠.

다시 말하면 실제 집안 공기를 깨끗하게 만드는 가장 중요한 역할은 필터가 한다고 보면 됩니다. 물론 공기를 잘 순환 시킬수 있도록 배출 및 입력부의 설계가 잘되어서 가능하면 집안 전체의 공기가 순환 되도록 해주는 설계가 중요하겠으나 당연히 먼지를 거르는 필터만큼 중요하지는 않을 것 같습니다.

오늘 소개해 드릴 부분은 호환용 필터 구입후 여러 네티즌분들이 아셨으면 하는 부분이라 생각되어 포스팅을 합니다. 특정 업체의 광고도 일부러 까는 것도 아니니 한명의 소비자의 입장에서 함께 봐주시면 좋을 것 같습니다.

그리고 뒤쪽에 필터 교체 후 필터 수명이 리셋이 안되는 문제가 있는 분들 참고할 만한 사이비 같은 내용이 있습니다.

 

저는 온라인 쇼핑몰인 쿠팡을 통하여 호환용 필터를 구매하였고요. 금액을 18500 원에 로켓배송을 해주어 합리적인 가격에 잘 구매를 했다고 생각하였습니다.

분리하고 보니 글쎄요.. 생각이 조금 달라졌습니다.

먼저 사용하던 제품과 새로 교체한 필터의 사진을 조금 보여드릴께요.

 

좌측이 기존 필터, 우측이 새로 구입한 필터

기존 필터와 새로 구입한 필터 입니다. 어떤 차이가 느껴지시나요?

조금 확대해서 보여드리겠습니다.

좌측이 기존 필터, 우측이 새로 구입한 필터

이제 차이가 느껴지시나요? 

받고 보니 기존 필터는 활성탄이 정말 꽉꽉 차있네요. 그런데 새로 구입한 필터는 반정도 밖에 차있지 않아 구멍의 위쪽으로는 공기가 그냥 지나가는 상태입니다. 

흠... 

기존 필터처럼 활성탄이 꽉꽉 차있어야만 지나가는 공기 속에 있는 냄새나 유해물질을 거르지 않겠습니까? 제 생각에는 우측처럼 텅빈 공간이 있다면 유체 특성상 빈 공간으로 더 많이 흐를뿐 아래쪽 흐름이 어려운 부분으로 공기가 지날것 같지가 않습니다. 그렇게 되면 빈 공간에 노출되어 공기와 맞닿는 아주 좁은 면적에서만 탈취 등을 기대할 수 있겠지요.

실제로 들어보면 무게에도 차이가 많이 납니다. 기존 제품이 거의 두배가 넘는지는 모르겠지만 훨씬 무겁습니다. 

좌측이 기존 필터 (1kg 이상임), 우측이 새로산 필터

무게역시 차이가 많이 나는데요, 새로산 필터가 881g 인 반면 좌측 기존 필터는 1kg 이 넘는 무게를 보이고 있습니다. 제가 가지고 있는 저울이 최대 1kg 까지밖에 측정이안되어 EEEE 라고 표시가 되었으나 손으로 들어봐도 무게 차이가 많이 납니다. 아마 활성탄의 차이 만큼인 듯 한데요. 큰 차이는 없겠지만 누적되어있는 먼지의 무게가 영향이 있기는 했을 것 같습니다.

 

쿠팡에서 제가 산 판매글의 후기를 보면 교체 후 필터 수명이 2칸만 뜬다거나 교체가 다시 뜬다거나 하는 글을 많이 보았습니다.

아마 리셋을 잘못하지 않았나 생각했었는데 저에게도 동일한 증상이 나타났습니다. 아뿔싸~

교체후에 필터 개수가 하나도 뜨지 않는 모습

 

어의가 없었습니다. 

그래서 필터 교체 수명 측정의 원리가 무었일까 알아보니 안쪽에 있는 검은색 부분이 필터 교체 주기를 측정하는 센서가 있는데 이 센서가 필터의 색상을 측정하여 교체 주기를 판단하는 것으로 보이더군요. 오염된 필터는 분명히 회색빛을 띄기 때문이지요.

그래서 판매자의 가이드에도 있었던 것처럼 면봉으로 닦아 보았습니다.

안쪽 상단의 저 검정색 부분을 면봉으로 닦아주자

 

하지만 안되더군요. (좌절) 0칸...

 

 

 

모니터를 닦으면 인터넷이 빨라진다???

일단 저녁을 먹고 정리를 하고 쉬고 있는데 문득 어의없는 생각이 들었습니다.

혹시 '호환 필터 제작 자체가 정품과는 다르게 저 센서가 색상을 측정하기에 좀 애매한 간격 (또는)형태로 되어 있는 것은 아닐까??' 갑자기 생각되어 저 센서에 필터 면이 잘 보이도록 튜닝을 좀 해봤습니다.

필터면을 좀 꾹꾹 눌러주었다.

필터 면을 꾹꾹 눌러서 좀 눕혀 보았습니다. 아무래도 센서에 필터가 좀더 잘보이도록 하면 측정이 정확히 될 것 같았습니다. 

 

결과는??

 

필터 리셋 5초 이상 눌러줍니다.

ㅋㅋ 대성공입니다. 오우~야

제가 하고도 어의가 없네요. 말도 안되는 것 같으면서 이게 되는게 어의가 없지만 모니터를 닦으면 인터넷이 빨라진다든가 하드디스크 커버를 닦았더니 고장난 하드디스크가 복구되는 마법이 일어난 것 같네요.

그런데 그일이 일어났습니다 도 아니고.. 

(참고로 저는 실제로 고장난 2.5인치 외장하드의 케이스가 너무 더러워 케이스를 분해하여 깨끗하게 닦은뒤 끼웠더니 잘 동작한적이 있습니다. 1년 가까이 지났지만 지금까지도 잘 동작합니다. ( -_- ;;)

암튼 필터 인식이 안되거든 필터의 센서 위치에 해당되는 부분을 손으로 꾹꾹 눌러 눕혀준 뒤 다시 세팅해 보시기 바랍니다. 소개드리면서도 어의가 없지만 필터 리셋이 안되어 칸수가 1칸, 또는 두칸만 나오시는 분은 저처럼 한번 해보시기 바랍니다.

뭐 과학은 아니고 민간 요법 또는 리빙포인트 정도로 보시면 되겠습니다.

 

 

끝으로 일체형 필터의 경우 실제 먼지가 얼마나 쌓였는지 알수 없기 때문에 궁금해서 한번 뜯어 보았습니다.

칼로 옆면을 잘라내어 분리를 해보았다.

음.... 조심조심... 먼지가 날릴까 조심조심 열었습니다.

와우 대박... 먼지가 아주 그냥 꽉꽉 차있네요.

먼지 가득한 헤파필터

무슨 양모 양탄자인것 마냥 빈틈없이 두툼하게 먼지가 자리잡고 있습니다.

훌륭히 공기청정기 역할을 했구나 싶어 다행이다 싶으면서도 교체시기가 지난 필터는 반드시 갈아야 하겠다는 생각을 했습니다. 물론 저 먼지가 도로 빠져 나와 집안으로 돌아다니지는 않겠지만 공기의 흐름이 나빠졌을테니 공기의 순환 효과도 덩달아 약해졌을 것이고 그만큼 공기청정 효과도 줄어들겠죠.

필터는 수명만큼만 사용하는 것이 좋겠다 생각했습니다.

 

 

오늘의 결론은

  • 저럼하게 새로 구입한 필터의 활성탄이 기존 것에 비하여 텅텅 비어있는 느낌이다. 
  • 필터 리셋 후 수명 인식이 잘 안되는 경우 필터의 센서 위치 부분을 꾹꾹 눌러주자.
  • 필터 교체주기가 지나기 전에 반드시 갈아 주자.

 

오늘 포스트에 등장한 두 제조사를 소개합니다.

  •  기존 필터 제조사 : 필터몬스터
  •  새로산 필터 제조사 : 필터메이트

도움이 되실까 하여 제조사 명을 올려봅니다.

내용 잘 보시고 어떤 필터를 구입하시든 현명한 선택 하시기 바랍니다.

 

뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 
도움이 되었다 생각되시면 클릭!!  부탁드려요~

 

반응형
반응형

대륙의 실수라고 제가 올린 중국산 RC 카 모델이 있습니다. HS18311 인데요. 썬더 스톰이라는 녀석이죠.

2019/12/23 - [DIY/RC] - [대륙의 실수] 가성비 RC 카 Storm Thunder, HS118311

 

[대륙의 실수] 가성비 RC 카 Storm Thunder, HS118311

대륙의 실수 시리즈가 한참 유행을 했었더랬죠. 각종 가전 제품들 카테고리 별로 중국의 가성비 높은 제품을들 일컬어 대륙의 실수라 통칭하는 재미있는 현상이 있었는데 오늘 소개할 제품은 바로 RC 카 입니다...

diy-dev-design.tistory.com

오늘은 해당 제품의 바디를 만들어 보았습니다.

Axial 에서 페이퍼크래프트용 JEEP WRANGLER 도면이 있길레 받아 두었었는데요. 제 차량에는 좀 크기가 맞지 않아 튜닝을 진행하였습니다. 

다 만들면 마로 이렇게 되죠. ㅋㅋㅋ 멋짐이라는게 폭발하지 않습니까?

JEEP WRANGLER PAPER CRAFT BODY on HS18311

 

전체적으로 수정을 많이 해서 원본과는 차이가 좀 많이 있습니다.

도면은 아래 링크에섯 받으시면 되고요. 만드는 방법은 아래 설명을 드릴께요.

Jeep_wrangler_papercraft_hs18311series.pdf
0.98MB

 

 

준비물

  • 다운로드 받은 도면 파일 (PDF)
  • 200g/m 정도의 두꺼운 A4용지 3장
  • 커터칼, 자, 목공용 풀 (오공본드, 무독이 같은것)
  • 아이스크림 막대, 재활용 모음에서 주은 플라스틱 포장재

뭐 공이 공작이므로 별다른건 없습니다. 우선 모두 커팅을 해서 이어 붙이기만 하면 끝납니다.

다만 RC 카 바디로 사용할 것이기 때문에 각종 모서리와 주요 프레임 역할을 할 나무 (저는 아이스크림막대기를 이용함)가 좀 있어야 겠습니다. 오뎅꼬치나 산적꼬치, 뭐든 쉽게 자를수 있는 나무 재질이면 가능합니다.

 

사실 뒷 휀다와 뒷범퍼는 없어도 상관 없을 것 같으니 안만드셔도 됩니다. 바퀴와 간섭이 있어서 금방 부서져 버리더라고요.

 

먼저 도면을 출력합니다.

200g 종이에 출력된 도면

 

모두 잘라냈습니다. 몇조각 되지 않으므로 그렇게 오래 걸리지는 않습니다.

모두 잘라낸 조각들

 

일반적인 종이 모형 제작 과정과 크게 다르지 않습니다. 그냥 계속 붙여가면 됩니다.

몸체를 붙이고 있는 모습

 

앞부분의 둥근 처리를 볼펜같은 걸 이용해서 둥글게 말아주어야 하고 앞부분과 옆부분의 앞쪽이 겹치게 되어 있으니 앞부분을 위로 가게 덮어서 붙여주면 됩니다.

요렇게요.

 

기름탱크와 스패어 타이어는 뒷쪽에 붙여주면 됩니다.

기름탱크와 스패어 타이어 부착

 

앞부분은 회색 동그라미 부분을 구멍을 뚫어 주시면 되고요. 뒷부분은 앞부분을 맞춰 보신 후 손으로 뒷쪽 바디 포스트 쪽을 꾹꾹 눌러주면 구멍을 뚫어야 할 자리를 알 수 있습니다.

해당 부분을 뚫어 주세요.

참고로 뒤쪽 바디 포스트 높이를 최대 높이로 조정을 해주어야 합니다.  바디포스트와 몸체가 연결된 부분의 나사를 풀면 높이를 조절해줄 수  있습니다.

뒷쪽 바디 포스트 위치

 

재활용 쓰레기 통에서 플라스틱 포장재를 하나 주워왔습니다.

바디 포스트 부분은 튼튼해야 하기 때문에 이 플라스틱 판을 이용해서 보강을 해줄 계획입니다.

플라스틱 포장재를 이용하여 바디포스트를 보강해주자.

 

작업 완료

 

이제 안쪽에 가지고 있는 나무를 이용하여 보강을 해 주어야 하는데 카메라 배터리가 다 떨어져서 붙이는 과정의 사진은 없습니다. 각자 알아서 붙이세요. 저는 아래와 같이 붙였습니다. 사진은 격렬하게 테스트를 마치고 만신창이가 되어 돌아온 저의 JEEP 입니다. 나무는 목공용 본드를 이용하여 붙였는데요. 종이에 아주 잘 붙습니다.

이 차량 특성상 마구 뒤집어지고 날라다니기 때문에 최대한 강력하게 붙여 주는 것이 좋을 것 같습니다.

나무로 보강되엉 있는 안 쪽 모습

 

 

아래 사진은 야외에서 찍은 모습입니다. 멋지네요. ㅋ.. 몇번 구르고 날랐더니 이미 뒷쪽 휀다는 엉망진창이 되어 있네요.

 

 

 

 

 

이상으로 포스팅을 마치겠습니다.

즐거운 종이공작 시간, 즐거운 RC 라이프 되시기 바랍니다.

 

https://diy-dev-design.tistory.com/112

 

[대륙의실수] 가성비 RC 카 HS18301, 안쪽까지 상세 보기, 4만원의 행복

중국산 제품은 이제 우리 생활에 뗄레야 뗄수 없는 필수 품이 되었습니다. 사실 나도 모르는 사이에 사용하는 거의 대부분의 제품이 중국에서 생산된 제품일 가능성이 높습니다. 제가 얼마전에 중국산 RC 카 스톰..

diy-dev-design.tistory.com

 

https://diy-dev-design.tistory.com/79

 

[대륙의 실수] 가성비 RC 카 Storm Thunder, HS118311

대륙의 실수 시리즈가 한참 유행을 했었더랬죠. 각종 가전 제품들 카테고리 별로 중국의 가성비 높은 제품을들 일컬어 대륙의 실수라 통칭하는 재미있는 현상이 있었는데 오늘 소개할 제품은 바로 RC 카 입니다...

diy-dev-design.tistory.com

 

 

반응형

+ Recent posts