티스토리 뷰

반응형

블럭 선택과 필터에 대하여...

본 코드는 BricsCAD에서 사용중인 코드입니다.  AutoCAD와 다를수 있으니 참고바랍니다.

코드 전체글:  [CAD/VBA] - 자동출력 VBA
이 글은 코드 전체 중 블록 설정에 대한 부분만 있습니다.

코드 중 수정이 필요하다고 판단되는 부분은 블록이름입니다.

블럭 이름 

'출력 폼 블럭의 이름 Dim BName(2) As String BName(0) = "A$C7E9A3D3E" BName(1) = "A$C220D1AB8" BName(2) = "Form A4" Dim BNC As Integer BNC = UBound(BName) + 2 ReDim FilterType(BNC) As Integer ReDim FilterData(BNC) As Variant FilterType(0) = -4 FilterData(0) = "<OR" For i = 1 To BNC - 1     FilterType(i) = 2     FilterData(i) = BName(i - 1) Next FilterType(BNC) = -4 FilterData(BNC) = "OR>" SelObj.SelectOnScreen FilterType, FilterData


  • 189~191행에 들어있는 이름은 제가 사용하는 출력 폼 블럭 이름입니다. 현재 3개가 정의되어 있는데 이 부분을 수정하시면 됩니다.  3개 보다 더 많이 사용해야 한다면 188행의 배열수를 늘려 추가하시면 됩니다.
  • 198~205행 내용은 필터에 관한 내용인데 이 부분은 FilterTypeFilterData의 조합으로 이루어집니다.

1. FilterType : DXF 코드를 사용하며 아래 나와있는 정도만 아셔도 됩니다. 

0 : Object Type (String)

오브젝트 타입 종류. 
    예 : "Line", "Circle", "Arc"  

2 : Object Name (Sting)

객체의 이름.
    예 : 본 소스에 사용된것 처럼 블럭이름.

8 : Layer Name (String)

레이어 이름.
    예 : "Layer 0"

62 : Color Number (Integer)

컬러 색상.
    예 : 7 (캐드의 색상번호 0~255)

-4 : 연산작업시 사용

OR, AND 연산에 사용
    예 : 본 소스에 OR 연산 사용

2. FilterData : 타입에서 선택한 데이터의 값을 넣는 부분.

  • 본 소스 필터를 이용하면 도면 영역에서 189~191행 BName에 입력한 블럭만 선택됩니다.
자동출력 소스 설명글은 여기서 마무리 하겠습니다. 

코드 전체글:  [CAD/VBA] - 자동출력 VBA
사용자 변경사항 1. 출력순서 변경
사용자 변경사항 2. 프린터 설정



반응형

'프로그래밍 > CAD' 카테고리의 다른 글

블럭 삭제 VBA  (0) 2018.02.09
자동출력 VBA - 프린터 설정  (0) 2018.02.09
자동출력 VBA - 출력순서  (0) 2018.02.09
자동출력 VBA  (1) 2018.02.08
VBA에서 사용하는 기초 LISP  (0) 2018.02.06
댓글