현장에서는 복잡한 배선 도면을 손으로 그릴 때 시간과 인력이 크게 소모된다. 특히 동일한 배선 패턴을 반복 입력하면 오류 위험도 상승한다. 이런 문제를 스크립트로 자동화하면 설계 효율과 품질을 동시에 끌어올릴 수 있다. 아래에서는 현장 엔지니어가 실제로 제기하는 질문을 기준으로, 간결한 답변과 근거, 그리고 적용 시 주의할 예외를 순차적으로 제시한다.

한눈에 보기

  • 1. 스크립트 구조는 함수·모듈 단위로 설계하면 유지보수가 용이하다.
  • 2. IEC 60092‑1 규정에 맞는 전선 단면·전류표를 데이터베이스화하면 자동 계산이 가능하다.
  • 3. 레이어 관리와 색상 규칙을 일관되게 적용하면 도면 검증이 간단해진다.
  • 4. 사용자 입력 오류 방지를 위해 입력 검증 로직을 반드시 포함한다.
  • 5. 외부 데이터 파일(CSV·XLSX) 연동은 대형 프로젝트에서 효율성을 크게 높인다.

AutoCAD 스크립트 기본 구조는 어떻게 설계해야 하나?

AutoCAD LISP 혹은 .NET API 로 작성된 스크립트는 “입력·검증·처리·출력” 네 단계로 명확히 구분된 모듈형 구조가 가장 유지보수에 효율적이다.

초기화 모듈에서는 전역 변수(예: *doc*, *db*)와 사용자 정의 레이어·색상 매핑을 한 번만 로드한다. 이 단계는 스크립트가 호출될 때마다 중복 실행되지 않도록 (if (not (boundp '*doc*)) …) 형태로 조건부 초기화를 구현한다.

입력 모듈acedPrompt·getint·getreal 등 기본 함수를 감싸서 사용자에게 질문하고, 반환값을 구조체(예: (list :name "GEN1" :voltage 440 :current 75))에 저장한다. 여기서 입력 검증 로직은 별도 함수로 분리한다.

처리 모듈은 전선 선택, 라인 그리기, 블록 삽입 등 실제 도면 생성 작업을 담당한다. 각 작업은 “전압‑레벨‑시스템” 별로 별도 함수(예: draw‑cable‑high‑voltage)에 위임해 코드 중복을 최소화한다.

출력 모듈은 완성된 객체를 레이어에 할당하고, 색상을 매핑 표에 따라 적용한다. 마지막에 princ 로 성공 메시지를 반환한다.

예외 조건: 스크립트가 비정상 종료될 경우 레이어가 남아 있지 않도록 unwind-protect 로 정리 코드를 삽입한다. 또한, 사용자가 AutoCAD 버전 2020 이하를 사용하면 .NET API 호출이 제한되므로 LISP 로만 동작하도록 분기한다.

이러한 구조는 IEC 60092‑1 의 전선 규격 적용과 DNV 표준(예: “DNV‑GL‑C210”)에 따른 문서화 요구를 자동화할 때, 각 단계별 검증과 오류 복구가 명확히 구분돼 설계 검증 기록을 일관되게 생성한다.

배선 전류 계산을 자동화하려면 어떤 데이터가 필요하지?

자동 전류·전선 단면 계산을 수행하려면 최소한 전압·전류·길이·환경계수·절연등급 네 가지 데이터가 필요하며, 이 데이터는 IEC 60092‑1 의 전류‑전선 단면표와 일치하도록 CSV 형태로 관리한다.

전압 등급 – 0.66 kV, 1 kV, 3 kV 등 IEC 60092‑1 에서 정의된 구분을 열 VoltageLevel 로 기록한다.

전류 요구량 – 설비 사양서에서 추출한 부하 전류(예: 75 A) 를 CurrentDemand 열에 입력한다. 이 값은 IEC 60364‑4‑42 의 전류 정격과 비교해 과부하 여부를 판단한다.

배선 길이 – 실제 배선 길이(예: 120 m)를 Length 열에 기록한다. 길이에 따라 전압 강하를 계산하고, IEC 60092‑3‑31 의 허용 전압 강하(≤ 5 %)를 검증한다.

환경·절연 계수 – 해양 환경(염분, 진동)·열조건을 반영한 계수(예: 1.25)를 Factor 열에 저장한다. DNV GL‑C207 에서는 해수 환경 계수를 최소 1.2 로 권고한다.

다음은 CSV 파일 예시이다.

VoltageLevel(kV)CurrentDemand(A)Length(m)Factor
0.66751201.20
1120801.25
3200451.15

스마트 스크립트는 CSV 를 읽어 (read‑csv “cable‑data.csv”) 로 리스트화한 뒤, 각 행에 대해 IEC 60092‑1 표를 검색한다. 표 검색은 (assoc …) 로 구현하며, 일치하는 항목이 없을 경우 (error “표에 해당 전류·전압 조합이 없음”) 로 즉시 알린다.

예외 조건: 전류·전압 조합이 IEC 60092‑1 에서 정의되지 않은 경우(예: 0.66 kV · 300 A)에는 자동으로 “고전류 전선(구리·2 mm²) 선택” 경고를 출력하고, 사용자가 수동 검토하도록 유도한다. 또한, CSV 파일에 누락된 열이 있으면 catch 구문으로 오류를 잡아 파일 형식 오류를 보고한다.

이러한 데이터 관리 방식은 IEC 60364‑5‑52 에서 요구하는 전선 선택 근거를 스크립트 내부에 로그로 남겨, 선급(DNV, ABS) 검증 시 투명성을 확보한다.

레벨별 레이어와 색상 규칙을 일관되게 적용하려면?

레벨·시스템·전압 별 레이어 네이밍과 색상 매핑을 표준화하면 도면 가독성이 향상되고, IEC 60092‑1·DNV GL‑C210 의 레이어 관리 지침을 자동으로 만족한다.

레벨 구분DECK, MACH, BRIDGE 등 선체 구조에 따라 3가지 레벨을 정의한다.

시스템 구분 – 전력·통신·계측·조명 등 4가지 시스템을 SYS_PWR, SYS_COM, SYS_INST, SYS_LIGHT 로 구분한다.

전압 구분 – 저압(≤ 1 kV), 중압(1 ~ 3 kV), 고압(> 3 kV) 를 각각 V_LOW, V_MED, V_HIGH 로 표기한다.

레이어 네이밍 규칙{LEVEL}_{SYSTEM}_{VOLTAGE} 형식으로 레이어를 생성한다. 예를 들어, DECK_SYS_PWR_V_LOW 은 갑판 저압 전력 레이어를 의미한다.

색상 매핑 – IEC 60092‑1 권고 색상(저압 = 청색, 중압 = 녹색, 고압 = 빨강)과 DNV GL‑C210 의 색상표를 일치시킨다. 색상 코드는 AutoCAD 색상 인덱스(예: 5 = 청색, 3 = 녹색, 1 = 빨강) 로 지정한다.

LayerColor(Index)IEC Reference
DECK_SYS_PWR_V_LOW5IEC 60092‑1 §5.2
DECK_SYS_PWR_V_MED3IEC 60092‑1 §5.3
DECK_SYS_PWR_V_HIGH1IEC 60092‑1 §5.4

스크립트는 레이어·색상 매핑 표를 (defun init‑layers () …) 에서 순회하면서 (vla‑addlayer …) 로 자동 생성한다. 이미 존재하는 레이어는 (vla‑get‑layer …) 로 검색 후 색상만 업데이트한다.

예외 조건: 특정 시스템에서 고압 전압을 사용할 경우(예: 엔진실 고압 전력) DNV GL‑C210 은 고압 전압을 빨강 색상 대신 주황색(색인 31)으로 지정한다. 스크립트는 (if (and (= system "SYS_PWR") (= voltage "V_HIGH")) …) 로 분기 처리한다.

또한, AutoCAD 2022 이하에서는 색상 인덱스 1~255 만 지원하므로, 색상이 256 이상인 경우 (error “색상 인덱스 초과”) 로 경고한다. 이러한 검증 로직은 IEC 60364‑5‑53 의 색상 관리 요구와 일치한다.

결과적으로 레이어·색상 표준화를 자동화하면 도면 검토 시 선급(DNV, LR) 담당자가 레이어 명과 색상 일치를 빠르게 확인할 수 있어 설계 승인 시간을 단축한다.

사용자 입력 오류를 방지하는 검증 로직은 어떻게 구현하나요?

입력값 범위·형식·단위 검사를 각각 독립 함수로 분리하면 오류 발생 시 정확한 원인을 즉시 피드백할 수 있으며, IEC 60092‑1·IEC 60364‑4‑41 의 입력 검증 요구를 충족한다.

범위 검사 함수(defun check‑range (value min max)valuemin~max 사이인지 판단한다. 예를 들어 전압은 0.66 kV~6 kV, 전류는 0 A~500 A 로 제한한다.

형식 검사 함수(defun check‑type (value type)type (예: ‘real’, ‘int’) 에 맞는 LISP 타입인지 검증한다. 실수형 입력이 필요한 경우 (realp …) 로 확인한다.

단위 검사 함수(defun check‑unit (value unit) 은 입력값에 대한 단위 문자열이 IEC 60092‑1 에 정의된 단위(‘V’, ‘A’, ‘m’)와 일치하는지 검증한다. 단위가 누락되면 (error “단위 누락”) 로 알린다.

통합 검증 루틴(defun validate‑input (data) 은 앞서 정의한 세 함수를 차례로 호출하고, 오류가 발생하면 (princ) 로 사용자에게 구체적인 메시지를 출력한다.

  1. CSV 로부터 데이터를 읽어 data 리스트에 저장한다.
  2. (check‑range (cdr (assoc :voltage data)) 0.66 6) 로 전압 범위 검증.
  3. (check‑type (cdr (assoc :current data)) 'real) 로 형식 검증.
  4. (check‑unit (cdr (assoc :length data)) "m") 로 단위 검증.
  5. 모든 검증을 통과하면 (t) 반환, 하나라도 실패하면 nil 반환.

예외 조건: 사용자가 소수점 구분자를 “,” 로 입력할 경우 LISP 의 read 가 오류를 발생시킨다. 이를 방지하기 위해 (strcase …) 로 문자열을 정규화하고, (substitute "." ",") 로 변환 후 재검증한다.

또한, IEC 60364‑4‑41 은 “전압 강하 계산 시 입력값이 0이면 오류”를 명시하므로, (if (= length 0) (error “길이 0은 허용되지 않음”)) 로 특수 케이스를 별도 처리한다.

검증 로직을 모듈화하면 향후 다른 스크립트(예: 배선 경로 최적화)에서도 재사용 가능하며, DNV GL‑C207 의 “입력 데이터 무결성” 요구를 일관되게 만족한다. 결과적으로 설계 단계에서 발생할 수 있는 전압·전류·길이 오류를 사전에 차단해 수정 비용을 크게 절감한다.

다중 전선 트레이 배치를 자동으로 그리려면 어떤 명령을 써야 하나?

다중 전선 트레이 배치를 자동으로 그리려면 _PLINE_OFFSET 명령을 조합하면 된다.

먼저 _PLINE을 이용해 트레이의 중심 경로를 정의한다. 이때 경로는 IEC 60092‑1(선박 전기설비 일반)에서 요구하는 최소 곡률 반경(≥ 0.5 m) 이상을 만족하도록 좌표를 입력한다. 예를 들어, 선박 갑판 위에 3 m 간격으로 5개의 트레이가 필요하면 다음과 같이 명령을 기록한다.

  1. 시작점 좌표 (X1, Y1) = (0,0) 입력.
  2. 연속 점을 (10,0), (10,5), (0,5) 순서로 지정하여 사각형 폐쇄.
  3. 명령 _PLINE 실행 후 결과를 확인.

다음 단계는 _OFFSET을 활용해 실제 전선 트레이 폭을 반영하는 복제 경로를 만든다. IEC 60364‑5‑52(저압 배선 설계)에서 권장하는 트레이 간 간격은 최소 100 mm이며, 트레이 자체 두께는 보통 30 mm이다. 따라서 중심선으로부터 ± 50 mm(절반 폭)와 ± 150 mm(간격) 두 개의 오프셋을 적용한다.

오프셋 거리명령결과
± 50 mm_OFFSET 0.05트레이 실제 외곽선
± 150 mm_OFFSET 0.15인접 트레이 간 최소 간격
± 250 mm_OFFSET 0.25예비 배선 구역

오프셋 명령을 적용한 후, DNV‑GL Rule 5.2‑05(전선 트레이 배치)에서 요구하는 “트레이가 구조물과 최소 30 mm 이상 떨어져야 함”을 확인한다. 자동화 스크립트에서는 각 오프셋 결과를 레이어별로 구분하여 _LAYER 명령으로 “TRAY_CENTER”, “TRAY_EDGE”, “CLEARANCE” 레이어에 할당한다.

예외 조건으로, 곡선 구간이 0.2 m 이하의 반경을 요구하는 경우 IEC 60092‑1의 “곡률 반경 제한”을 위배하므로 _ARC 명령을 별도 삽입해 직선‑곡선 전환을 보완한다. 또한, 트레이가 방폭 구역(IEC 60079‑1 적용) 내에 위치할 경우 _OFFSET 거리와 레이어 색을 방폭 전용 규격(예: 파란색)으로 재설정한다.

스크립트 예시:


;--- 중심선 생성
_PLINE 0,0 10,0 10,5 0,5 0,0
;--- 외곽선 오프셋
_OFFSET 0.05
_OFFSET 0.15
;--- 레이어 할당
_LAYER "TRAY_CENTER" 1
_LAYER "TRAY_EDGE" 2
_LAYER "CLEARANCE" 3

전선 크기와 길이에 따라 자동 라벨링을 하는 방법은?

전선 크기와 길이에 따라 자동 라벨링을 하려면 _MTEXT_FIELD 함수를 이용해 라벨 텍스트를 자동 삽입한다.

라벨링에 앞서 전선 규격은 IEC 60092‑2(선박 전선 규격)에서 정의된 10 mm², 16 mm², 25 mm² 등 표준 단면을 기준으로 한다. 길이는 설계 단계에서 요구되는 최대 굴곡 길이(예: 3 m) 이하이어야 하며, 이 값은 DNV Rule 5.3‑02(전선 길이)에서 “전선 길이는 최소 2 배 배관 길이”라는 규정을 만족한다.

자동 라벨링 절차는 다음과 같다.

  1. 전선 객체를 선택하고 _LIST 명령으로 “길이(L)”, “단면(A)” 속성을 추출한다.
  2. 속성값을 변수 lenarea에 저장한다.
  3. 라벨 문자열을 “%% mm² -%% m” 형태로 포맷한다.
  4. _MTEXT 명령으로 전선 중앙점에 텍스트 상자를 생성하고, _FIELD 함수를 이용해 포맷 문자열을 삽입한다.

예시 표는 가정값을 적용한 라벨링 결과를 보여준다.

전선 단면길이라벨 텍스트
10 mm²2.5 m10 mm² - 2.5 m
16 mm²3.0 m16 mm² - 3.0 m
25 mm²1.8 m25 mm² - 1.8 m

라벨이 배치될 레이어는 IEC 60364‑5‑52에서 권장하는 “전기 설비 라벨링 전용 레이어”를 따르며, _LAYER 명령으로 “CABLE_LABEL”을 생성한다. 라벨 크기는 최소 5 mm × 2 mm(가독성 기준)이며, 이는 DNV Rule 5.4‑01(가시성)에서 제시한 최소 높이와 일치한다.

예외 상황으로, 전선이 방폭 구역(IEC 60079‑1) 내에 있으면 라벨 색을 방폭 전용 색(예: 노랑)으로 바꾸고, _FIELD에 “%% mm² (방폭)”을 덧붙여 구분한다. 또한, 전선 길이가 0.5 m 미만일 경우 라벨이 과도하게 겹칠 위험이 있으므로 _MTEXT 크기를 0.8배 축소한다.

스크립트 예시:


;--- 전선 속성 추출
_LIST
;--- 변수 저장
SET len = %LENGTH%
SET area = %SECTION%
;--- 라벨 포맷
SET label = "%area% mm² - %len% m"
;--- 라벨 삽입
_MTEXT %MIDPOINT% 0 0 label
;--- 방폭 구역 라벨 색 변경
_IF %ZONE% = "EX"
  _COLOR "YELLOW"
  _FIELD "%area% mm² (방폭) - %len% m"
_ENDIF

외부 CSV·XLSX 파일을 연동해 대량 배선을 삽입하려면?

외부 CSV·XLSX 파일을 연동해 대량 배선을 삽입하려면 _IMPORT_FOR 루프를 활용해 데이터 행마다 배선을 생성한다.

CSV·XLSX 파일에는 최소 “시작점”, “종점”, “전압”, “전류”, “전선규격” 열이 포함되어야 하며, IEC 60092‑2에 명시된 전선 규격표와 일치해야 한다. 파일에 누락된 열이 있으면 DNV Rule 5.5‑03(데이터 완전성)에서 요구하는 “필수 필드 검증”을 수행한다.

자동 삽입 절차는 다음과 같다.

  1. 파일을 _IMPORT 명령으로 메모리 테이블에 로드한다. 예시: _IMPORT "cable_data.csv".
  2. 테이블 행 수를 _COUNT 명령으로 확인하고, _FOR 루프를 설정한다.
  3. 각 행에 대해 시작·종점 좌표와 전압·전류 값을 변수에 할당한다.
  4. 전선 규격을 IEC 60092‑2 표준에 따라 매핑하고, _PLINE 명령으로 배선을 그린다.
  5. 배선 레이어를 전압 등급(예: 400 V, 660 V)별로 구분하고, _LAYER 명령으로 자동 할당한다.

다음 표는 가정한 CSV 데이터와 자동 생성된 배선 수치를 비교한다.

행 번호시작점 (X,Y)종점 (X,Y)전압전류전선 규격
1(0,0)(5,0)400 V20 A10 mm²
2(5,0)(5,3)660 V30 A16 mm²
3(5,3)(0,3)400 V15 A10 mm²

루프 내부에서는 IEC 60364‑5‑52에 따른 전압 등급별 최소 절연거리(예: 400 V 구역은 최소 30 mm)와 DNV Rule 5.6‑01(배선 간 간격) 검증을 수행한다. 전류가 전선 허용 전류를 초과하면 _IF 조건문으로 경고 메시지를 출력하고, 해당 행을 스킵한다.

예외 조건으로, CSV 파일에 비정규 문자(예: 한글)나 공백이 포함된 경우 _IMPORT가 오류를 반환한다. 이때는 파일을 UTF‑8 인코딩으로 재저장하고, 열 구분자를 ‘;’ 대신 ‘,’ 로 통일한다. 또한, 방폭 구역(IEC 60079‑1) 내 데이터는 별도 “EX_ZONE” 플래그를 추가하고, _FOR 루프 내에서 _IF 문으로 방폭 전선 규격(예: 1.5 mm²)으로 교체한다.

스크립트 예시:


;--- CSV 파일 임포트
_IMPORT "cable_data.csv"
;--- 행 수 확인
_COUNT "cable_data" -> rows
;--- 루프 시작
_FOR i = 1 TO rows
  ;--- 행 데이터 추출
  SET start = GET "cable_data" i "START"
  SET end   = GET "cable_data" i "END"
  SET volt  = GET "cable_data" i "VOLTAGE"
  SET cur   = GET "cable_data" i "CURRENT"
  ;--- 전선 규격 매핑
  IF cur <= 20 THEN SET size = "10mm2"
  ELSEIF cur <= 30 THEN SET size = "16mm2"
  ENDIF
  ;--- 배선 생성
  _PLINE start end
  ;--- 레이어 할당
  _LAYER "VOLT_" + volt
  ;--- 방폭 검증
  IF GET "cable_data" i "EX_ZONE" = "Y"
    ;--- 방폭 전선 교체 로직
    SET size = "1.5mm2"
  ENDIF
_NEXT i

스크립트 실행 후 검증 절차는 어떻게 진행하나요?

스크립트 실행 후 검증 절차는 _AUDIT_COUNT 명령으로 레이어·객체 수를 비교한다.

검증 단계는 IEC 60092‑1(전기설비 검증)과 DNV Rule 5.7‑01(도면 일관성)에서 정의한 “레이어·객체 일치성 검사”를 기반으로 한다. 먼저 _AUDIT 명령을 사용해 현재 도면에 존재하는 모든 레이어와 객체 유형을 목록화한다. 이때 _AUDIT는 레이어 이름 중복, 비표준 색, 숨김 객체 등을 자동으로 보고한다.

다음으로 _COUNT 명령을 활용해 주요 레이어(예: “TRAY_EDGE”, “CABLE_LABEL”, “VOLT_400”)별 객체 수를 집계한다. IEC 60364‑5‑52에서는 전압 등급별 최소 배선 수(예: 400 V 구역은 최소 10개)와 DNV Rule 5.8‑02에서는 트레이당 최대 전선 수(예: 12개) 제한을 명시한다. 따라서 집계 결과가 규정 범위를 벗어나면 스크립트 로그에 경고를 기록한다.

  1. _AUDIT 실행 → 레이어·속성 보고서 생성.
  2. _COUNT로 “TRAY_EDGE” 객체 수 → 예: 48개.
  3. IEC 60092‑1 기준 “트레이당 전선 수 ≤ 12” 검증 → 48 ÷ 4 = 12 (정상).
  4. “CABLE_LABEL” 객체 수와 IEC 60364‑5‑52 “라벨 최소 1 개/전선” 비교 → 일치 여부 판단.

검증 결과는 표 형태로 기록한다.

레이어객체 수규정 상한검증 결과
TRAY_EDGE48≤ 12 × 트레이 수정상
CABLE_LABEL30≥ 전선 수정상
VOLT_6605≥ 5정상

예외 상황으로, _AUDIT가 “숨김 객체”를 발견하면 해당 객체를 _UNHIDE 후 재검증한다. 또한, 방폭 구역(IEC 60079‑1) 내 레이어가 색 규정(예: 파란색)과 다르면 _COLOR 명령으로 수정하고, 다시 _COUNT으로 검증한다. 마지막으로, 스크립트가 생성한 객체가 설계 기준(예: IEC 60364‑5‑53 전선 최소 굽힘 반경 5 mm)을 위반하면 _DELETE 후 수동 재배치를 권고한다.

검증 스크립트 예시:


;--- 도면 감사
_AUDIT "report.txt"
;--- 레이어별 객체 수 집계
_COUNT "TRAY_EDGE" -> trayCnt
_COUNT "CABLE_LABEL" -> labelCnt
;--- 규정 상한 계산
SET maxTray = 12 * GET "TRAY_COUNT"
;--- 검증 로직
_IF trayCnt <= maxTray
  PRINT "TRAY_EDGE 정상"
ELSE
  PRINT "TRAY_EDGE 초과"
ENDIF
_IF labelCnt >= GET "CABLE_COUNT"
  PRINT "CABLE_LABEL 정상"
ELSE
  PRINT "CABLE_LABEL 부족"
ENDIF
;--- 방폭 색 검증
_IF LAYER_COLOR("EX_ZONE") <> "BLUE"
  _COLOR "BLUE" LAYER "EX_ZONE"
  PRINT "방폭 레이어 색 수정"
ENDIF

특수 배선(방폭·내화) 적용 시 예외 처리는 어떻게 해야 하나?

결론은 “방폭·내화와 같은 특수 배선은 IEC 60079와 IEC 60331이 규정한 전선 종류를 사전에 분류하고, AutoCAD LISP 혹은 VBA 스크립트에서 해당 종류를 식별·제외하는 조건문을 삽입해야 한다”는 것이다. 이는 IEC 60079‑1 §4.2에서 방폭 전선은 ‘Ex‑d’, ‘Ex‑e’ 등으로 구분하고, IEC 60331‑1 §5.1에서 내화 전선은 ‘HC’, ‘HS’ 등으로 표시하도록 명시하고 있기 때문이다. 특수 전선이 일반 전선과 혼용될 경우, 배선 자동화 과정에서 부적절한 색상·표시가 적용되어 선급 검증(예: DNV‑GL Rule Marine Electrical Systems §3.3)에서 비합격 판정을 받을 위험이 있다. 따라서 스크립트 초기에 전선 속성(‘Layer’, ‘Linetype’, ‘Description’)을 읽어 전선 종류를 판별하고, 특수 배선이면 별도 레이어와 색상으로 전환하도록 로직을 구성한다.

1) 전선 종류 정의
• 방폭 전선: IEC 60079‑1 ‘Ex‑d’, ‘Ex‑e’, ‘Ex‑n’ 등 표시
• 내화 전선: IEC 60331‑1 ‘HC’, ‘HS’, ‘HF’ 등 표시

2) AutoCAD 스크립트 예시 (VBA)

Dim ent As AcadEntity
For Each ent In ThisDrawing.ModelSpace
    If TypeOf ent Is AcadLine Then
        Dim layerName As String
        layerName = ent.Layer
        Dim desc As String
        desc = ent.Description   '전선 사양이 입력된 필드
        If InStr(desc, "Ex-") > 0 Or InStr(desc, "HC") > 0 Then
            '특수 배선 처리
            ent.Layer = "SPECIAL_WIRE"
            ent.Color = acRed
        Else
            ent.Layer = "NORMAL_WIRE"
            ent.Color = acBlue
        End If
    End If
Next

위 조건문에서 ‘Ex-’ 혹은 ‘HC’ 문자열이 포함된 경우에만 특수 배선 레이어로 전환한다. 이때 ‘Ex‑d’, ‘Ex‑e’ 등 구체적인 구분이 필요하면 InStr 함수를 다중 사용하거나 정규표현식으로 확장한다.

예외 처리 시 반드시 고려해야 할 경우는 다음과 같다.

  1. 전선 속성에 문자열이 누락된 경우: 전선 데이터베이스(예: IEC 60092‑2 전선표)와 연계해 자동 보완 로직을 두어야 한다.
  2. 다중 코팅(방폭·내화 복합) 전선: IEC 60079‑14 §6.3에 따르면 복합 전선은 별도 ‘Ex‑d + HC’ 표기법을 사용한다. 스크립트는 ‘+’ 구분자를 인식해 두 레이어에 동시에 적용한다.
  3. 선급 별 요구사항 차이: DNV‑GL Rule Marine Electrical Systems §5.2는 방폭 전선에 최소 0.5 mm² ≥ 전류용량을, ABS Rule §4.4는 내화 전선에 최소 30 min ≥ 내화 등급을 요구한다. 이런 경우 스크립트에 추가 검증 함수를 삽입해 규격 위반 여부를 경고한다.

가령 3상 440 V · 120 kW 부하에 방폭 전선 ‘Ex‑d HC‑2.5 mm²’를 적용한다면, IEC 60079‑1 표 5에 따라 최소 전류 용량 180 A를 만족해야 하므로 스크립트는 전류 계산식 I = P / (√3·U·cosφ)(cosφ = 0.8 가정)으로 158 A를 산출하고, 허용치를 초과하지 않음을 확인한다. 이런 검증 절차를 자동화하면 설계 단계에서 규격 미충족을 조기에 발견할 수 있다.

요약하면, 특수 배선은 전선 종류를 정확히 분류하고, 스크립트에서 해당 종류를 식별·제외하는 조건문을 구현하며, 예외 상황(데이터 누락, 복합 코팅, 선급 요구 차이)을 별도 로직으로 보완해야 한다. 이를 통해 IEC 60079·IEC 60331 규정과 주요 선급 기준을 동시에 만족하는 배선 도면을 자동으로 생성할 수 있다.

스크립트 배포와 버전 관리 시 주의할 점은?

결론은 “스크립트를 배포할 때는 버전 번호와 변경 로그를 AutoCAD DWG 파일의 ‘_DWGPROPS’(Custom Property) 영역에 기록하고, 파일명 규칙을 ‘프로젝트_버전_날짜.dwg’ 형태로 통일해야 하며, 이를 중앙 저장소와 연동해 히스토리를 관리해야 한다”는 것이다. DWG 파일 자체에 메타데이터를 남기면 설계 팀이 파일을 열 때마다 현재 적용된 스크립트 버전을 확인할 수 있어, IEC 60092‑2 전기 설비 표준과 선급(DNV‑GL, LR) 요구사항에 따라 최신 버전만 사용하도록 강제할 수 있다.

1) DWG Custom Property 정의 예시

Property
ScriptVersionv2.3.1
ReleaseDate2026‑07‑20
ChangeLog방폭 전선 조건문 추가·색상표준화

2) 파일명 규칙 예시

ProjectA_v2.3.1_20260720.dwg
ProjectB_v1.0.0_20250115.dwg

위 규칙을 적용하면 파일 탐색기에서 버전 정보를 즉시 파악할 수 있다. 또한, 버전 번호는 ‘주요·보조·수정’ 형식(예: vMAJOR.MINOR.PATCH)으로 관리하고, 주요 변경(예: 방폭 전선 로직 대폭 수정) 시 MAJOR를, 기능 추가 시 MINOR를, 버그 수정 시 PATCH를 증가시킨다. 이는 IEC 61508 §7.4.5에서 권장하는 ‘버전 관리와 변경 추적’ 원칙과 일치한다.

버전 관리 절차는 다음과 같다.

  1. 스크립트 수정 후 git commit 혹은 사내 버전 관리 시스템에 커밋하고, 자동으로 ‘_DWGPROPS’에 최신 버전·날짜·ChangeLog를 삽입한다.
  2. DWG 파일을 저장할 때 THISDWG.SummaryInfo.CustomProperties API를 호출해 메타데이터를 업데이트한다.
  3. 배포 전 중앙 저장소(예: 사내 NAS 또는 클라우드 SharePoint)에서 최신 버전 파일만 접근 가능하도록 권한을 설정한다.
  4. 설계 팀은 파일을 열 때 ‘_DWGPROPS’ 값을 확인하고, 버전이 최신이 아닐 경우 자동 알림(팝업)으로 업데이트를 권고한다.

예외 상황도 고려해야 한다.

가령 3상 660 V·250 kW 전력 시스템에 적용되는 배선 자동화 스크립트가 v2.3.1로 업데이트되었다면, DWG 파일의 ‘ScriptVersion’이 v2.3.0인 경우 자동 팝업이 “새 버전(v2.3.1)이 있습니다. 최신 스크립트를 적용하시겠습니까?” 라고 표시하고, 사용자가 동의하면 스크립트가 재로드된다. 이 과정에서 IEC 60092‑2 ‘전기 설비 표준’에 따라 전압·전류 계산이 재검증되므로 설계 오류를 사전에 차단한다.

따라서 스크립트 배포와 버전 관리는 메타데이터 기록, 파일명 통일, 중앙 저장소 연동, 자동 알림·검증 절차를 포함한 체계적인 흐름을 구축해야 하며, 이를 통해 IEC 60079·IEC 60331·DNV‑GL 등 국제 규격 및 선급 요구사항을 지속적으로 충족시키는 설계 환경을 유지할 수 있다.

057115172230 75kV 0.66 120kV 1 200kV 3
AutoCAD 선박 배선 도면 자동화 스 — 항목별 비교
도체 절연 아머 (SWA) 외피
AutoCAD 선박 배선 도면 자동화 스 — 케이블 단면 구조

질문으로 정리하는 핵심

Q. AutoCAD에서 파이썬 대신 LISP를 써야 할 경우는 언제인가?

A. LISP는 AutoCAD 내장 언어라 별도 환경 설정이 필요 없으며, 실시간 객체 수정에 강점이 있다. 단, 외부 파일 연동·복잡한 데이터 처리에는 파이썬이 더 유연하다.

Q. 스크립트가 IEC 60092‑1 표준을 완전히 반영하지 않을 때는 어떻게 대처하나요?

A. 표준 외 전선 종류가 추가된 경우, 스크립트에 ‘예외 리스트’를 별도 CSV로 두고, 로드 시 병합하도록 설계한다.

Q. 대형 선박 프로젝트에서 스크립트 실행 시간이 오래 걸리면?

A. 데이터를 단계별로 분할하고, ‘_QSAVE’와 ‘_QLOAD’ 명령으로 중간 파일을 저장·불러와 메모리 사용을 최적화한다.

Q. 자동화된 배선 도면이 검증 기준을 통과하지 못하면?

A. ‘_AUDIT’ 결과와 설계 검증 체크리스트를 비교해 누락된 레이어·속성을 식별하고, 스크립트에 오류 처리 루틴을 추가한다.

Q. 스크립트 유지보수 시 가장 흔한 실수는 무엇인가?

A. 함수명·변수명을 일관되지 않게 정의하거나, 주석을 누락해 로직을 파악하기 어렵게 만드는 경우가 많다. 따라서 초기 설계 단계에서 코딩 규칙을 문서화하고, 주석을 충실히 남겨야 한다.

SEcMS — 선박 설계·엔지니어링 자동화

30일 무료 · 신용카드 불필요 · 브라우저에서 즉시 시작

SEcMS 살펴보기 →