각도에 따라 발진 위치가 달라져, Front/Down angle 평균을 임계값으로 Front/Down offset을 자동 선택해 적용(자동·수동 발진 공통). - LaserInterlock: Horizontal/Vertical → Front/Down angle 로 변경 - SystemParameter: CellCenterOffset X/Y → Front/Down offset X/Y (4개) - LaserAngleOffsetSelector 헬퍼 신규 + 선택값 LOG - PLC 미연결 시 Front offset fallback 주의: 설정 프로퍼티명 변경으로 기존 저장값 자동 이관 안 됨(재입력 필요) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using Aurora.Api;
|
||
using PropertyTools.DataAnnotations;
|
||
|
||
namespace ILSOS_PrismaticRD_PTOP.Settings
|
||
{
|
||
// Laser 발진 인터락 세팅 (세팅 메뉴에 PropertyGrid로 자동 노출)
|
||
public class LaserInterlockSetting : ISettingItem
|
||
{
|
||
// 체크 시 인터락 동작, 해제 시 미동작 (기본 false: 설정·검증 후 사용)
|
||
[Browsable(true)]
|
||
[ReadOnly(false)]
|
||
[Category("Head Theta Interlock")]
|
||
[DisplayName("Use Interlock")]
|
||
public bool HeadThetaInterlockEnabled { get; set; } = false;
|
||
|
||
[Browsable(true)]
|
||
[ReadOnly(false)]
|
||
[Category("Head Theta Interlock")]
|
||
[DisplayName("Front Angle (deg)")]
|
||
public double HeadThetaFront { get; set; } = 0;
|
||
|
||
[Browsable(true)]
|
||
[ReadOnly(false)]
|
||
[Category("Head Theta Interlock")]
|
||
[DisplayName("Down Angle (deg)")]
|
||
public double HeadThetaDown { get; set; } = 90;
|
||
|
||
[Browsable(true)]
|
||
[ReadOnly(false)]
|
||
[Category("Head Theta Interlock")]
|
||
[DisplayName("Tolerance (±deg)")]
|
||
public double HeadThetaTolerance { get; set; } = 2.5;
|
||
|
||
// PLC Head_Theta_Position 스케일. deg×10 가정(미확정) → 실값 확인 후 조정.
|
||
[Browsable(true)]
|
||
[ReadOnly(false)]
|
||
[Category("Head Theta Interlock")]
|
||
[DisplayName("PLC Scale (deg×?)")]
|
||
public double HeadThetaPlcScale { get; set; } = 10;
|
||
}
|
||
}
|