PSC 단면을 조회하거나 등록·변경하는 함수입니다. PSC는 치수를 vSIZE 하나에 담지 않고 네 개의 배열로 나눠서 받습니다.
・ aSizes : I단 외형 치수 (vSIZE_PSC_A)
・ bSizes : I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes : J단 외형 치수 (vSIZE_PSC_C)
・ dSizes : J단 내부 셀 치수 (vSIZE_PSC_D)
배열이 몇 개짜리인지는 형상마다 다르며, 각 함수가 알아서 맞춰 줍니다. 모자라면 0으로 채우고 넘치면 잘라내므로 시트 범위를 그대로 넘겨도 됩니다. 아래 예제는 모두 제품에서 실제로 생성해 ope/SECTPROP으로 확인한 값입니다.
| 형상 | SHAPE 코드 | 방식 | 함수명 |
|---|---|---|---|
| 전 형상 | - | PSC | SectionPsc |
| PSC 1 Cell | 1CEL | PSC | SectionPsc1Cell |
| PSC 2 Cell | 2CEL | PSC | SectionPsc2Cell |
| PSC 3 Cell | 3CEL | PSC | SectionPsc3Cell |
| PSC n Cell | NCEL | PSC | SectionPscNCell |
| PSC n Cell type 2 | NCE2 | PSC | SectionPscNCell2 |
| PSC Mid Girder | PSCM | PSC | SectionPscMid |
| PSC I Girder | PSCI | PSC | SectionPscI |
| PSC Half | PSCH | PSC | SectionPscHalf |
| PSC Tee | PSCT | PSC | SectionPscTee |
| PSC Plate / Slab | PSCB | PSC | SectionPscPlate |
SectionPsc(sectId, sectName, shape, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2], [nA], [nB], [nC], [nD], [nJoint], [useSymmetric], [useSmallHole])
SectionPsc1Cell(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags])
SectionPsc2Cell(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags])
SectionPsc3Cell(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags])
SectionPscNCell(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2])
SectionPscNCell2(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2])
SectionPscMid(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2])
SectionPscI(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags])
SectionPscHalf(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2])
SectionPscTee(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags])
SectionPscPlate(sectId, sectName, aSizes, bSizes, cSizes, dSizes, [sWidth], [jointFlags], [pscOpt1], [pscOpt2])
모든 함수는 아래 선택 인자를 공통으로 받습니다. 생략하면 기본값이 들어갑니다.
・ offsetPt: 단면 기준점 (기본 "CC")
・ useShearDeform: 전단 변형 고려 (기본 True)
・ useWarping: 뒤틀림 효과 고려 (기본 False)
치수는 현재 모델의 길이 단위를 따릅니다. 아래 예제는 모두 m 기준이므로 먼저 Unit "KN", "M" 으로 단위를 맞춰 두십시오.
SectionPsc
PSC 단면을 형상 코드와 네 개의 치수 배열로 직접 등록하는 범용 함수입니다. 아래 전용 함수들이 모두 이 함수를 호출합니다. 전용 함수가 없는 형상이나 제품 버전이 올라가 새 형상이 생겼을 때 씁니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
・ pscOpt1, pscOpt2: 형상별 옵션 문자열
・ nA, nB, nC, nD: 각 배열이 요구하는 값 개수
・ nJoint: JOINT 배열 길이 (0이면 JOINT를 보내지 않음)
・ useSymmetric: 좌우 대칭 사용 여부
・ useSmallHole: 작은 구멍 사용 여부
Debug.Print SectionPsc(30, "PSC_Any", shape:="1CEL", _
aSizes:=Array(0.23, 0.42, 0.055, 0.18, 1.68, 0.23), _
bSizes:=Array(1.23, 0.44, 0.9, 0.6, 0.02, 1.8), _
cSizes:=Array(0.22, 0.44, 0.05, 0.14, 1.23, 0.88, 0.2, 0.025, 0.09, 0.21), _
dSizes:=Array(1.91, 0.89, 1.56, 1.69, 1.48, 0.57, 1.1, 0), _
sWidth:=0.23, nA:=6, nB:=6, nC:=10, nD:=8, nJoint:=8, useSymmetric:=True)
SectionPsc1Cell
1셀 PSC 박스 단면을 등록합니다. 치수 개수는 aSizes 6, bSizes 6, cSizes 10, dSizes 8, jointFlags 8 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
Debug.Print SectionPsc1Cell(31, "PSC-1CELL", _
aSizes:=Array(0.23, 0.42, 0.055, 0.18, 1.68, 0.23), _
bSizes:=Array(1.23, 0.44, 0.9, 0.6, 0.02, 1.8), _
cSizes:=Array(0.22, 0.44, 0.05, 0.14, 1.23, 0.88, 0.2, 0.025, 0.09, 0.21), _
dSizes:=Array(1.91, 0.89, 1.56, 1.69, 1.48, 0.57, 1.1, 0), sWidth:=0.23)
SectionPsc2Cell
2셀 PSC 박스 단면을 등록합니다. 치수 묶음은 1CEL과 같고 두 번째 셀은 dSizes에서 나옵니다. 치수 개수는 aSizes 6, bSizes 6, cSizes 10, dSizes 8, jointFlags 8 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
Debug.Print SectionPsc2Cell(32, "PSC-2CELL", _
aSizes:=Array(0.23, 0.42, 0.055, 0.18, 1.68, 0.23), _
bSizes:=Array(1.23, 0.44, 0.9, 0.6, 0.02, 1.8), _
cSizes:=Array(0.22, 0.44, 0.05, 0.14, 1.23, 0.88, 0.2, 0.025, 0.09, 0.21), _
dSizes:=Array(1.91, 0.89, 1.56, 1.69, 1.48, 0.57, 1.1, 0.1), sWidth:=0.23)
SectionPsc3Cell
3셀 PSC 박스 단면을 등록합니다. 치수 개수는 aSizes 10, bSizes 12, cSizes 13, dSizes 13, jointFlags 13 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
Debug.Print SectionPsc3Cell(33, "PSC-3CELL", _
aSizes:=Array(0.2, 0.4, 1.22, 0.36, 0.23, 0.42, 1.1, 0.6, 1.62, 0.34), _
bSizes:=Array(0.92, 0.44, 2.05, 0.94, 0.4, 1.16, 1.12, 0.35, 2.08, 2.7, 1.36, 0.43), _
cSizes:=Array(1.25, 0.52, 0.06, 0.2, 0.05, 0.14, 0.21, 0.32, 0.39, 1.12, 0.49, 0.24, 0.17), _
dSizes:=Array(0.99, 0.51, 0.32, 0.68, 0.68, 0.33, 0.45, 0.98, 1.5, 0.93, 0.46, 0.74, 0.29), _
sWidth:=0.2)
SectionPscNCell
n셀 PSC 박스 단면을 등록합니다. cSizes/dSizes와 jointFlags는 쓰지 않습니다. 치수 개수는 aSizes 5, bSizes 8 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ pscOpt1: 모서리 처리 방식. CHAMFER
・ pscOpt2: 셀 개수를 문자열로. 예 "4"
Debug.Print SectionPscNCell(34, "PSC-nCELL", _
aSizes:=Array(1.5, 0.3, 0.2, 0.1, 0.15), _
bSizes:=Array(4, 0.8, 0.18, 0.05, 0.05, 0.21, 0.12, 0.15), _
sWidth:=1.5, pscOpt1:="CHAMFER", pscOpt2:="4")
SectionPscNCell2
n셀 PSC 박스 단면(타입 2)을 등록합니다. 치수 개수는 aSizes 11, bSizes 18, cSizes 11, dSizes 18, jointFlags 2 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
・ pscOpt1: 셀 형상. CIRCLE 또는 POLYGON
・ pscOpt2: 셀 개수를 문자열로. 예 "2"
Debug.Print SectionPscNCell2(35, "PSC-nCELL2", _
aSizes:=Array(0.12, 0.2, 0.08, 0.4, 0.7, 0.34, 0.2, 0.3, 0.34, 0.5, 0.51), _
bSizes:=Array(0.19, 0.13, 0.15, 0.08, 0.09, 0.07, 0.22, 0.2, 0.07, _
0.06, 0.05, 0.03, 0.13, 0.05, 0.06, 0.07, 0.2, 0.3), _
cSizes:=Array(0.12, 0.2, 0.08, 0.4, 0.7, 0.34, 0.2, 0.3, 0.34, 0.5, 0.51), _
dSizes:=Array(0.19, 0.13, 0.15, 0.08, 0.09, 0.07, 0.22, 0.2, 0.07, _
0.06, 0.05, 0.03, 0.13, 0.05, 0.06, 0.07, 0.2, 0.3), _
sWidth:=4, pscOpt1:="POLYGON", pscOpt2:="2")
SectionPscMid
PSC 중앙부 거더 단면을 등록합니다. 상하 헌치 모양에 따라 전체 폭이 달라지므로 aSizes/cSizes를 옵션에 맞춰 넣어야 합니다. 치수 개수는 aSizes 10, bSizes 6, cSizes 9, dSizes 6, jointFlags 9 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
・ pscOpt1: 상부 헌치. NONE, CIRCLE, POLYGON
・ pscOpt2: 하부 헌치. NONE, CIRCLE, POLYGON
' 헌치 없음
Debug.Print SectionPscMid(36, "PSC-MID", _
aSizes:=Array(2.3, 2, 0, 0, 0, 0, 0, 0, 0, 0), _
bSizes:=Array(0, 0.5, 0, 0, 0, 0), _
cSizes:=Array(2.2, 0, 0, 0, 0, 0, 0, 0, 0), _
dSizes:=Array(0, 0.7, 0, 0, 0, 0), sWidth:=2.3, _
jointFlags:=Array(True, False, False, False, False, False, False, False, False), _
pscOpt1:="NONE", pscOpt2:="NONE")
SectionPscI
PSC I형 거더 단면을 등록합니다. 치수 개수는 aSizes 10, bSizes 7, cSizes 9, dSizes 7, jointFlags 9 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
Debug.Print SectionPscI(37, "PSC-I", _
aSizes:=Array(2.45, 0.26, 0.44, 0.05, 0.2, 1.13, 0.4, 0.07, 0.22, 0.27), _
bSizes:=Array(0.16, 1.36, 0.44, 0.9, 0.8, 0.29, 0.52), _
cSizes:=Array(0.26, 0.48, 0.03, 0.22, 1.09, 0.44, 0.05, 0.24, 0.25), _
dSizes:=Array(0.18, 1.34, 0.46, 0.85, 0.82, 0.35, 0.57), sWidth:=2.45)
SectionPscHalf
PSC 반단면을 등록합니다. pscOpt2 값에 따라 cSizes/dSizes에 넣을 값이 달라집니다. 치수 개수는 aSizes 6, bSizes 6, cSizes 10, dSizes 7, jointFlags 8 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
・ pscOpt1: 남길 쪽. LEFT 또는 RIGHT
・ pscOpt2: 셀 형상. NONE, CIRCLE, POLYGON
Debug.Print SectionPscHalf(38, "PSC-HALF", _
aSizes:=Array(0.23, 0.42, 0.055, 0.18, 1.68, 0.23), _
bSizes:=Array(1.23, 0.44, 0.9, 0.6, 0.02, 1.8), _
cSizes:=Array(0.22, 0.44, 0.05, 0.14, 1.23, 0.88, 0.2, 0.025, 0.09, 0.21), _
dSizes:=Array(1.91, 0.89, 1.56, 1.69, 1.48, 0.57, 1.1), sWidth:=0.23, _
pscOpt1:="LEFT", pscOpt2:="POLYGON")
SectionPscTee
PSC T형 거더 단면을 등록합니다. 치수 개수는 aSizes 8, bSizes 8, cSizes 7, dSizes 8, jointFlags 9 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
Debug.Print SectionPscTee(39, "PSC-TEE", _
aSizes:=Array(2.17, 0.29, 0.13, 1.8, 0.21, 0.13, 1.63, 1.83), _
bSizes:=Array(0.025, 0.08, 1.43, 0.85, 0.06, 0.03, 0.81, 1.42), _
cSizes:=Array(0.29, 0.28, 1.7, 0.19, 0.16, 1.6, 1.85), _
dSizes:=Array(0.05, 0.16, 1.4, 0.85, 0.06, 0.02, 0.8, 1.39), sWidth:=2.17)
SectionPscPlate
PSC 슬래브(플레이트) 거더 단면을 등록합니다. 치수 개수는 aSizes 10, bSizes 6, cSizes 8, dSizes 5, jointFlags 2 개입니다. 모자라면 0으로 채우고 넘치면 잘라냅니다. sectId를 0으로 넣으면 조회됩니다.
・ sectId: 단면 번호
・ sectName: 단면 이름
・ aSizes: I단 외형 치수 (vSIZE_PSC_A)
・ bSizes: I단 내부 셀 치수 (vSIZE_PSC_B)
・ cSizes: J단 외형 치수 (vSIZE_PSC_C)
・ dSizes: J단 내부 셀 치수 (vSIZE_PSC_D)
・ sWidth: 대화상자 상단의 대칭 폭 (SWIDTH)
・ jointFlags: 절점 사용 여부 배열. 생략하면 전부 True
・ pscOpt1: HALF, 1CELL, 2CELL
・ pscOpt2: HALF일 때는 LEFT 또는 RIGHT, 그 외에는 CIRCLE 또는 POLYGON
Debug.Print SectionPscPlate(40, "PSC-PLAT", _
aSizes:=Array(1.44, 0.26, 1.7, 0.14, 0.16, 1.35, 0.37, 1.45, 0.48, 0.18), _
sWidth:=1.44, jointFlags:=Array(True, False), _
pscOpt1:="HALF", pscOpt2:="LEFT")