반응형

 

다음과 같은 PCB Design Data가 있을때, 이 Design에 대한 database를 뽑아본다.

1. SKILL 언어를 통해 Allegro PCB Database에 접근하기 위해서는 가장 기본적으로 DBID를 부여받아야 한다.

   DBID는 동적할당됨으로 계속 바뀔 수 있고, 그때마다 DBID를 호출해서 하나씩 파고 들어가야 한다.

   axlDBGetDesign()함수를 호출하면 해당 작업하고 있는 PCB Design의 DB값이 부여되어 리턴한다.

   또한 이 DB를 List형태로 불러오기 위해서는 -> 라는 연산자를 사용하며, 내용이 궁금할 땐, ? 또는 ?? 연산자를 사용.

axlDBGetDesign() 함수는 DBID를 리턴하고, 이를 변수명 "design_dbid"로 저장하여 사용한다.

변수명 "design_dbid"에 연산자 ->? 를 사용하면, 아래와 같이 어떤 데이터들이 들어있는지 쭉 나온다. 아마 띄어쓰기가 구분자로 되어있어 보기 헷갈릴 것이다. 고로 _itemsperline 함수를 잘 이용해서 출력되는 display를 조절할 수 있다.

_itemsperline = 1 으로 변경해서 보기 편하도록 수정하면 리스트가 아래와 같이 나온다.

->?? 연산자를 이용하면 속성이름(Name)과 값(value)가 세트로 나오는데, 이 또한 구분자가 띄어쓰기로 보기 어렵다.

고로 _itemsperline 함수를 이용해서 값을 2로 수정해주면 Name - Value 가 세트로 나오기 때문에 보기 편하다.

Design Database에 값이 없으면 nil으로 표시가 되고, 값이 있으면 아래와같이 내부의 dbid가 리스트나 값으로 나오게 된다.

이제 하나씩 데이터베이스에 접근하고 수정 및 작업하려면

아래와 같이 각 변수에 해당 값들을 대입해준다.

예) texts_dbid를 뽑아보면, 아래와 같다.

text의 database정보를 뽑아내는데, 보기 어렵게 나오므로 _itemsperline = 1 이용해 읽기 좋게 만들었다.

반응형
반응형

QuickMenu:

1. 현재 날짜 시간 정보 얻기

2. 시작 시간과 종료 시간 비교하기

3. 현재 Allegro PCB가 설치되어 있는 경로 불러오기 (설치된 경로임!)

4. 현재 작업중인 파일 경로 불러오기 (예, 지금 작업하는 .brd를 어느 경로에서 실행중인지)

5. 현재 작업중인 경로를 바꿔주는 함수

6. Windows OS에게 명령 내리기 함수

 

 

1. 현재 날짜 시간 정보 얻기

결과

2. 시작 시간과 종료 시간 비교하기

  (테스트 start라는 변수에 53분, finish 변수에 55분 결과로 차이가 초(sec)단위로 나옴)

3. 현재 Allegro PCB가 설치되어 있는 경로 불러오기 (설치된 경로임!)

(특이한 점은 \가 2개씩 있다는거 유의)

4. 현재 작업중인 파일 경로 불러오기 (예, 지금 작업하는 .brd를 어느 경로에서 실행중인지)

 

5. 현재 작업중인 경로를 바꿔주는 함수

   인자가 없으면 환경변수의 HOME디렉터리로 이동.

   인자가 있으면 문자열 형태 " "로 path를 넣어줌.

현재 디렉터리 확인 후, changeWorkingDir() 인자없이 넣어보았다.

그랬더니 HOME 디렉터리로 이동함.

그리고 다시 경로를 넣어서 changeWorkingDir("경로")을 하니 변경된것을 확인할 수 있음.

 

6. Windows OS에게 명령 내리기 함수

   sh("실행 파일명") 

   시스템 환경변수로 저장된 프로그램만 실행이 될 것이다.

cadence Tool실행해보기
padstack 실행됨.
pspice 실행됨.

   다른 툴 실행시켜보기.

시스템변수의 PuTTY 확인.

 

 

 

(참고) 현재 사용하고 있는 버전 정보 얻기.

흠.... 그러나,,,,  버전 정보가 나오지 않는다..

옛 버전만 가능한듯 하다...  이건 사용하지 말길..

 

반응형
반응형

1.  for문

    c언어와 동일하나 구분자가 space다.

결과
제곱근 결과

2.  foreach문

    리스트에 들어있는 변수를 for문과 결합하여 여러번 비교할때 사용,

   파이썬과 비슷.

결과

 

*(추가) foreach문은 2개의 list도 한번에 리턴이 가능하다.

결과

   (단, 반복의 횟수는 두 list중 갯수가 적은 것이 기준이 된다.)

3개 이상(여러개)도 가능

결과

 

 

3. while문

100까지 반복

반응형
반응형

SKILL언어에서 띄어쓰기/공백(Space)는 중요한 요소임으로 주의한다.

 

 

1.

E- *Error* eval: not a function 오류 발생

특히 함수(function)을 만들 때 아래와 같은 사항을 주의.

공백이 있으면 안된다.
오류 테스트

 

2.

E- *Error* eval: unbound variable 오류 발생

특히 함수(function)을 만들 때 아래와 같은 사항을 주의.

 

3.

잘못된 데이터 인자를 넣을 때 발생하는 오류.

E- *Error* strcat: argument #2 should be either a string or a symbol (type template = "S") - 5

(E- *Error* 함수이름: argument #몇번째인자 should be either a string or a symbol (type template = "S") - 수정할 위치)

 

4.

이건 Allegro SKILL 인터프리터의 문제지만... 모르고 있으면 뒤통수 맞기 쉽상이다..

set telskill로 만든 창 크기가 영향이 있다.. (해상도 작은 사람은 답이 없다 ㅠㅠ)

아래 정확히 t값을 리턴하는 작동되는 함수가 있다. 줄이 길어 함수가 옆으로 쭉 늘여져 있는데, 이를 인터프리터 창을 줄이고 실행하면 에러가 발생한다 ;;

에러발생..;; 황당하지만 모르고 왜 안되지 하며 삽질할 수도 있다...

 

 

반응형
반응형

Cadence Allegro PCB Editor에서는 SKILL이라는 언어를 제공하여 기능을 사용할 수 있다.

이를 활용해본다. SKILL에서는 띄어쓰기(Space) 구분자가 중요함으로 이를 각별히 주의한다.

 

Allegro PCB Editor에서 SKILL 사용법. 인터프리터를 사용한다.

    아래 Command 스크립트 창에 > set telskill 이라고 입력한다.

이와 같이 Skill창이 열린다.

 

 

 

 

 

 

 

SKILL 기초 문법 사용

Allegro Editor에서 SKILL사용은 불편함으로 필자는 Sublime 3라는 편집기를 이용했다. 세팅하는 방법은 아래 참조.

https://ansan-survivor.tistory.com/22

 

[PCB Editor] Cadence Allegro PCB Skill 언어 쉽게 사용하는 환경 구축

Cadence Skill 언어를 비주얼 스튜디오처럼 자동완성기능이나 하이라이트 기능을 해서 쉽게 코딩할 수 있는 환경을 구축한다. 이를 위해서 먼저 Sublime3를 설치한다. (Notepad++ 같은 가벼운 텍스트 편집툴이지만..

ansan-survivor.tistory.com

 

1. 주석 달기

    한줄 주석은 ; 를 사용

    여러줄 주석은 /*  */ 를 사용한다. (C언어와 동일)

2. 변수 선언 및 내장함수 대입

실행 결과

3. 변수 선언, 값 증분 및 감소 (C언어와 동일)

4. 변수에 문자열 저장 (문자열은 " "사이에 입력)

5. 변수의 Type 확인하기

6. 한줄에 여러 변수 선언, println, printf 함수 사용

    println은 화면에 값을 출력하고 성공했다고 리턴값으로 nil 을 출력한다.

    printf는 화면에 값을 출력하고 성공했다고 리턴값으로 t 를 출력한다.

    printf는 문자열 내 변수값을 넣을 때 C언어 처럼 %n (정수), %f (실수), %s (문자열)을 추가 할 수 있다.

한줄에 3개 변수 선언 후 확인

(하나의 변수 확인 출력)

(문자열내 변수 삽입하여 출력)

(printf 테스트 해보기)

테스트 변수선언
결과

==============================================================

 

이미 저장된 SKILL 파일( .il )파일을 Allegro PCB에 로딩시키는 방법으로는 아래와 같다.

 

1. 현재 실행하는 Board 파일의 디렉터리 위치를 확인한다.

2. 해당 위치에 SKILL 파일 ( .il )파일을 작성하여 놓는다.

hello를 3번 반복

3. 해당 위치에 있는 .brd 파일을 실행시킨다.

> skill load("hello.il") 를 입력하면, 해당 스킬파일이 실행된다.

<Tip> 만약 skill 파일을 "skill_file" 이라는 폴더를 만들고 그 안에 넣고 싶으면 아래와 같이한다.

(리눅스의 구분자와 동일하다)

. 현재위치

/ 디렉터리 이동

<Tip> 절대경로로 skill파일 불러오기 테스트 SKILL에서 디렉터리 구분자로는 윈도우의 역슬래쉬(\)가 아니고 리눅스처럼 슬래쉬(/) 이어야 한다.

해당 경로에 넣어서 불러오기

 

 

 

( 추가 )

아래 블로거님들께서 SKILL에 대한 OS관련 함수 및 Data Type 정리를 잘해주셨다. 

https://sanghurn.tistory.com/category/Language/SKILL

 

'Language/SKILL' 카테고리의 글 목록

오스틴의 개인 블로그

sanghurn.tistory.com

https://blog.naver.com/avalros/220015350162

 

SKILL language command

- SKILL 함수 Print함수 - print(), println(), printf() ※ C언어와 동일... BindKey - hiGetB...

blog.naver.com

 

아래 영상 참고

https://www.youtube.com/watch?v=qhoigB-HSLc 

 

반응형
12345

+ Recent posts