반응형

OrCAD PCB / Allegro PCB 에서는 컬러 설정이 매우 유용하게 쓰인다.

필름을 만들 때 필터링 할 때 등등

이 색상들 또한 SKILL으로 켜고 끌 수 있다.

 

 

 

 

 

<디자인 전체 Color 켜고 끄기>

 

필요 함수

axlVisibleDesign(nil) 함수  :  전체 컬러 끄기

axlVisibleDesign(t) 함수  :  전체 컬러 켜기

 

 

 

<특정 레이어 Color 켜고 끄기>

 

필요 함수

axlVisibleLayer 함수  :  어떤 것을 켜고 끌지 세팅

 

(테스트)

아래와 같이 Top면의 레이어는 모두 끈 상태.

Top면의 Etch를 켜기

axlVisibleLayer("etch/top" t)

해당 Etch의 Top 레이어가 켜짐을 알 수 있다.

다시 끄기

axlVisibleLayer("etch/top" nil)

해당부 컬러가 꺼짐을 알 수 있다.

 

* 특정 부분 켜보기 (예, 필름마스크 바텀, 오토실크 스크린)

1.

axlVisibleLayer("Pin/Filmmaskbottom" t)

결과

 

 

 

2.

axlVisibleLayer("manufacturing/autosilk_top" t)

결과

 

 

** 어떤 하위 명령어를 지원하는지 확인하려면?

axlGetParam("paramLayerGroup:manufacturing")->groupMembers

아래 모든 항목이 Manufacturing에서 다 지원하는 것을 확인 할 수 있다.

 

반응형
반응형

 atoi 함수

     string -> 정수(fixnum) 변환

 atof 함수

     string -> 실수(flonum) 변환

결과

 

a = "1"
a = atoi(a)
println(a)
println(type(a))



b = list("1" "2" "3")
(foreach (x) b
	println(atoi(x))    
)


c = "0.25"
c = atof(c)
println(c)
println(type(c))

 

 

정수,실수 -> 문자열 변환 아래 참고

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

 

[Cadence SKILL / LISP] 정수 또는 실수를 string으로 변환 시켜주기, sprintf 함수 사용법 (숫자 문자열 변

정수(fixnum) -> string 변환, 실수(flonum) -> string 변환, b = 2 formatted_num = sprintf(nil "%d" b) a = 3.25 formatted_num = sprintf(nil "%f" a) 결과

ansan-survivor.tistory.com

 

반응형
반응형

아래 TOP의 layer 속성을 변경

1. xs 에 TOP layer의 dbid를 넣음

2. axlXSectionModify( 여러 값들 ) 으로 그룹생성

3. axlXSectionSet 으로 변경

반응형

(name TOP은 중복되므로 주석)

xs = axlXSectionGet(nil "TOP")

; 세팅 그룹 생성
lxc = axlXSectionModify(
   ; ?name "TOP"
   ?layerType "CONDUCTOR"
   ?mfg "foobar"
   ?thickness 10.0
   ?tolPlus 0.1
   ?tolMinus 0.2
   ?layerId "Ed"
   ?material "fucking"
   ;?negativeArtwork t
   ;?unusedPin t
   ?unusedVia t
   ;?embedded "BODY_UP"
   ;?embeddedAttach "INDIRECT_ATTACH"
   ?conductivity "20000"
   ;?dielectricConst "2.1"
   ?width 4.4
   ?lossTangent "0.123"
   ?shield t
   ?freqDepFile "freqFile"
   ?etchFactor 88
   ?diffCouplingType "EDGE"
   ?diffSpacing 2
)

ret = axlXSectionSet(xs lxc)

결과

 

 

반응형
반응형

복잡하게 함수가 있을 때 에러가 발생하면 찾기 힘들다.

따라서 아래 방법을 사용하면 좀더 쉽게 어느 부분에서 에러가 났는지 찾을 수 있다.

sstatus(stacktrace 10)
sstatus(stacktraceDump t)
sstatus(debugMode t )

해당 코드를 디버깅하고자 하는 SKILL파일 (.il)파일 위에 넣으면 된다.

 

기존 방법은 print함수로 찍으면서 값을 확인해야 하는데, 실제로 함수가 많으면 어느부분에서 발생했는지 찾기 어렵다.

위 디버깅 코드를 넣으면 어떤 함수 내에 가려져 있어도 금방 tracking하여 해당 부분에 가서 더 빠르게 수정 가능하다.

 

Stack Trace로 좀더 세밀히 본다.

반응형

 

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

 

dbid에 어떤 속성들이 있는지 간결하고 빠르게 print해주는 함수

axlPrintDbid("dbid")

axlXSectionGet이라는 함수로 Cross-section 정보의 dbid 하나씩을 얻을 수 있다.

그러나 이를 보려면 일일이 foreach문으로 내부리스트를 분해해야 하는데, 귀찮고 빠르게 어떤 구조인지 보려면 이함수를 사용하는 것이 좋다.

 

반응형
반응형

윈도우의 경우 환경변수파일이 아래와 같이 등록되어있다.

시스템속성 - 고급 - 환경변수

이 환경변수를 Allegro PCB skill 명령어로 불러올 수 있다.

getShellEnvVar("환경변수명")

(결과 테스트)

위 환경변수 명령어를 입력하면 값이 출력된다.

 

 

 

반응형
반응형

 

ansan-survivor.tistory.com/620

 

[PCB Editor] OrCAD / Allegro PCB 자동으로 B/B via(Blind/Buried Via) 만들기 (auto define B/B via)

B/B via를 수동으로 만드는 방법이 있지만, 빠르게 자동생성하는 방법이 있다. 수동으로 만드는 방법은 아래 참고 ansan-survivor.tistory.com/98 [PCB Editor] OrCAD PCB Editor, B/B(blind/buried) via 만들기...

ansan-survivor.tistory.com

위 포스팅에서 생성한 via.

아래와 같이 via가 정의 되어있을 때, 현재 정의된 모든 via의 항목을 보여주는 함수가 있다.

 

axlCnsGetViaList(nil)

(결과)

 

 

반응형
반응형

아래와 같이 Cline으로 구성된 배선을 Shape으로 속성을 변경시켜주는 기능을 제공한다.

왼쪽 Cline -> 오른쪽 Shape

 

사용 방법은 아래와 같다. 만일을 대비해 기존 SKILL을 적용하기 전의 Brd 파일을 백업한다.

cline2shape.il
0.00MB

 

1. 다운로드 받은 파일을 SKILL을 불러올 수 있는 경로에 저장, 또는 현재 내 작업디렉터리에 저장.

        (로드 방법 아래 참고)

ansan-survivor.tistory.com/152

 

[Cadence Allegro SKILL] 언어 사용법 및 기초, SKILL파일 불러오기

Cadence Allegro PCB Editor에서는 SKILL이라는 언어를 제공하여 기능을 사용할 수 있다. 이를 활용해본다. SKILL에서는 띄어쓰기(Space) 구분자가 중요함으로 이를 각별히 주의한다. Allegro PCB Editor에서 SKIL..

ansan-survivor.tistory.com

 

2. command창에 입력

skill load("cline2shape.il")

load 됨

3. command창에 입력

cline2shape

4. 그리고 해당 Cline을 클릭한다. 그러면 Shape으로 변경된다. 마우스우클릭 - Done

    다만, Dummy Net가 된다.

5. 해당 Net에 원래 있던 Net를 부여한다. 그리고 마우스우클릭 - Done

(결과)

 

 

반응형
반응형

메뉴 커멘드 활성화 비활성화

; 메뉴바 명령어로 id 찾아 제거하기
; 해당 메뉴를 활성화 (실행 가능)
q = axlUIMenuFind(nil "repvia")
axlUIMenuChange(q 'enable t)

; 해당 메뉴를 비활성화 (실행 불가능)
q = axlUIMenuFind(nil "repvia")
axlUIMenuChange(q 'enable nil)

비활성화
활성화

반응형

메뉴 커멘드 제거

; 메뉴바 명령어로 id 찾아 제거하기
; 해당 명령어 메뉴가 있으면 0리턴 없으면 nil리턴
l = axlUIMenuFind(nil "repvia" nil)
axlUIMenuDelete(l)

Remove창 사라짐

(추가 TIP)

해당 명령어를 등록 해제하여 사용 못하게 만듦

해당 실행 함수 해제

axlCmdUnregister("repvia")
putd( 'pj_bbvia_main nil)

 

팝업창 띄우기

ansan-survivor.tistory.com/604

 

반응형
1234···9

+ Recent posts