SVG 경로 문자열을 사용하여 베지어 곡선 만들기동일한 방식으로 구성된 두 개의 SVG 경로가 있습니다.
a = "M 10 60 C 20 80 40 80 50 60";
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0";
'a'의 빠른 플롯은 다음 호를 보여줍니다.
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(a, 0);
);
);
그러나 'b'를 플롯하려고 하면 오류가 발생합니다.
DisplayBox[EvalContextBox]
argument value is invalid in access or evaluation of 'Path' , Bad Argument( b ), Path/*###*/(b, 0)
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(combined, 0);
);
);곡선에 '닫는' 문자 'z'를 추가하면 세그먼트가 그려지고 '선'이 원점으로 돌아갑니다. 이것은 작동하지만 내가 원하는 것은 아닙니다. 나는 단지 호를 원합니다.
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";

내 궁극적인 목표는 4개의 호를 결합하여 원에 가깝게 만드는 것입니다.
tr = "M 0 150 C 82.8 150 150 82.8 150 0 z";
br = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";
bl = "M 0 -150 C -82.8 -150 -150 -82.8 -150 0 z";
tl = "M 0 150 C -82.8 150 -150 82.8 -150 0 z";
combined = "M 0 150 C 82.8 150 150 82.8 150 0 z M 0 -150 C 82.8 -150 150 -82.8 150 0 z M 0 -150 C -82.8 -150 -150 -82.8 -150 0 z M 0 150 C -82.8 150 -150 82.8 -150 0 z";
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(combined, 0);
);
);
이번에도 'z' 문자를 제거하면 동일한 오류가 발생합니다.
완전성을 위해 'z' 문자가 제거된 웹 브라우저에서 이 결합된 문자열을 시도했고 올바르게 렌더링되었습니다.
< svg 뷰박스 = "-175 -175 350 350" 스타일 = "테두리: 녹색 고체;" >
< 길 ID = "Wrf_Edge" 뇌졸중 = "검은색" 채우다 = "없음" 획 너비 = "1" 디 = "M 0 150C 82.8 150 150 82.8 150 0M 0 -150C 82.8 -150 150 -82.8 150 0M 0 -150C -82.8 -150 -150 -82.8 -150 0M 0 150C -82.8 150 -150 82. 8 -150 0" />
svg >

품질 및 프로세스 엔지니어링Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기아니요 Jarmo, 평가/삽입을 사용하지 않았습니다. 나중에 시간 나면 한번 해봐야겠습니다.
여담이지만 원을 생성하기 위해 4개의 베지어 호를 만들 필요는 없었습니다. SVG에는 훨씬 적은 문자로 그릴 수 있는 것보다 'A'(호) 태그가 있으며 베지어 '제어점'을 생성할 필요가 없으므로 이해하기가 훨씬 쉽습니다.
위의 다른 예와 마찬가지로 작동하려면 문자열 끝에 '이중 0'을 추가해야 했습니다.
"M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00"
SVG ARC, SVG 베지어 곡선 및 JMP의 기본 '원' 기능을 비교해 보면 모두 거의 비슷합니다.
circleArcSyntax = "M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00";
circleCurveSyntax = "M 0 150 C 82.8 150 150 82.8 150 00 M 0 -150 C 82.8 -150 150 -82.8 150 00 M 0 -150 C -82.8 -150 -150 -82.8 -150 00 M 0 150 C -82.8 150 -150 82.8 -150 00";
New Window( "JMP Circle Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penSize(20);
penColor("yellow");
path(circleArcSyntax, 0);
penColor("red");
penSize(10);
path(circleCurveSyntax, 0);
penSize(2);
penColor("black");
circle({0,0}, 150);
);
);SVG ARC = 노란색
SVG 4세그먼트 베지어 곡선 = 빨간색
JMP '원' 기능 = 검정.

Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기JMP14에서도 실패하는 것을 확인할 수 있습니다.할 수 있는 한 가지는 아래와 같이 베지어 곡선을 뒤에서 앞으로 구성하는 것입니다(각 C의 끝점이 다음 C의 시작점이기 때문에 MOVE 명령은 하나만 필요합니다).
circle = "M 0,150 C 82.8,150 150,82.8 150,0 C 150,-82.8 82.8,-150 0,-150 C -82.8,-150 -150,-82.8 -150,0 C -150,82.8 -82.8,150 0,150 z";
New Window( "JMP Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(circle , 0);
);
);Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기흠, JMP(15.2.0에서만 테스트됨)는 마지막 문자가 '0'인 경우를 좋아하지 않는 것 같습니다. '0'에 다른 값을 설정하거나 '더블업'하여 '00'으로 설정하면 제대로 작동합니다. 문자열은 다음과 같습니다.
" M 0 150 C 82.8 150 150 82.8 150 0 "
된다
"M 0 150 C 82.8 150 150 82.8 150 00"
</CODE></P><P> </P><PRE><CODE class=" language-jsl">circle = "M 0 150 C 82.8 150 150 82.8 150 00 M 0 -150 C 82.8 -150 150 -82.8 150 00 M 0 -150 C -82.8 -150 -150 -82.8 -150 00 M 0 150 C -82.8 150 -150 82.8 -150 00";
New Window( "JMP Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(circle, 0);
);
);

Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기나는 또한 결합된 문자열(브라우저 스니펫에서 붙여넣은 복사)을 사용하여 시도해 보았지만 정상적으로 작동했습니다.
Names Default To Here(1);
New Window("JMP 8PFU Layout Example",
Graph Box(
frameSize(500, 500),
X Scale(-175, 175),
Y Scale(-175, 175),
Pen Size(2);
Pen Color("blue");
Path("M 0 150 C 82.8 150 150 82.8 150 0 M 0 -150 C 82.8 -150 150 -82.8 150 0 M 0 -150 C -82.8 -150 -150 -82.8 -150 0 M 0 150 C -82.8 150 -150 82.8 -150 0", 0);
)
);

그래프 상자의 사용자 정의 부분을 수정해 보셨나요? 아니면 Eval Insert를 사용하여 Path()에 문자열을 추가할 수도 있습니다. (왜 필요한지는 모르겠지만...)

Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기참 이상해요 Jarmo. 15.2.0을 사용하고 있습니다. 결합된 문자열을 사용해 보셨나요?
궁극적으로는 많은 SVG 문자열을 만들어 앱 개발자가 사용할 수 있도록 DB 테이블에 저장할 것입니다. 또한 이 원은 웨이퍼의 둘레를 나타냅니다. 결과적으로 모든 개발 환경에서 작동하는 문자열이 하나만 필요합니다. JMP 애플리케이션의 경우 4개의 서로 다른 호를 사용하는 것이 아니라 DB에서 중복을 피하기 위해 하나의 문자열만 사용하고 싶습니다.
이것이 의미가 있기를 바랍니다.
그런데 문자 그대로 JMP를 다시 시작하고 코드를 수정하지 않고 스크립트에 복사/붙여넣었지만 여전히 이 오류가 발생합니다. 다른 JMP 버전을 사용해 보겠습니다.

Re: SVG 경로 문자열을 사용하여 베지어 곡선 만들기제 생각에는 JMP16.2 Pro와 Windows 10(버전 관련?)을 사용하면 제대로 작동하는 것 같습니다.
Names Default To Here(1);
tr = "M 0 150 C 82.8 150 150 82.8 150 0";
br = "M 0 -150 C 82.8 -150 150 -82.8 150 0";
bl = "M 0 -150 C -82.8 -150 -150 -82.8 -150 0";
tl = "M 0 150 C -82.8 150 -150 82.8 -150 0";
New Window("JMP 8PFU Layout Example",
Graph Box(
frameSize(500, 500),
X Scale(-175, 175),
Y Scale(-175, 175),
Pen Size(2);
Pen Color("blue");
Path(tr, 0);
Pen Color("red");
Path(br, 0);
Pen Color("green");
Path(tl, 0);
Pen Color("red");
Path(bl, 0);
)
);

(그래프 상자에서는 Eval Insert를 사용하여 사용자 정의가 오른쪽 클릭 메뉴에 올바른 정보를 표시하도록 합니다)