clear; clc;
w = 1.6; %
R_min = 15;
R_max = 600;
R_eff = 29;
N = 1000; %
theta_target = pi;
L_total = theta_target * R_eff;
A = sqrt(L_total / (1/R_min - 1/R_max));
dl = L_total / N;
theta = 0;
x = 0;
y = 0;
X = zeros(1, N+1);
Y = zeros(1, N+1);
Theta = zeros(1, N+1);
X(1) = x;
Y(1) = y;
Theta(1) = theta;
for i = 1:N
s = i*dl;
curvature = s/(A^2) + 1/R_max;
R = 1/curvature;
dtheta = dl/R;
theta = theta + dtheta;
dx = dl * cos(theta);
dy = dl * sin(theta);
x = x + dx;
y = y + dy;
X(i+1) = x;
Y(i+1) = y;
Theta(i+1) = theta;
end
figure;
plot(X, Y, 'b-');
axis equal;
title('Euler Bend Verification (μm units)');
xlabel('X (μm)'); ylabel('Y (μm)');
grid on
layer = 1;
dtype = 0;
filename = 'Euler_Bend_Final.gds';
nx = -sin(Theta);
ny = cos(Theta);
left_X = X + (w/2)*nx;
left_Y = Y + (w/2)*ny;
right_X = X - (w/2)*nx;
right_Y = Y - (w/2)*ny;
polygon = [lbk]left_X', left_Y';
right_X(end:-1:1)', right_Y(end:-1:1)';
left_X(1), left_Y(1)[rbk];
polygon_db = polygon * 1e3;
gds_lib = gds_library('BEND', 'uunit', 1e-6, 'dbunit', 1e-9);
structure = gds_structure('MAIN');
element = gds_element('boundary', ...
'xy', polygon_db, ...
'layer', layer, ...
'dtype', dtype);
structure = add_element(structure, element);
gds_lib = add_struct(gds_lib, structure);
write_gds_library(gds_lib, filename);
%% 诊断输出(消除range依赖)
disp('===== 诊断信息 =====');
disp([lbk]'X方向跨度: ' num2str(max(X)-min(X)) 'μm'[rbk]);
disp([lbk]'Y方向跨度: ' num2str(max(Y)-min(Y)) 'μm'[rbk]);
disp([lbk]'多边形顶点数: ' num2str(size(polygon,1))[rbk]);
disp([lbk]'GDS文件路径: ' fullfile(pwd, filename)[rbk]);
disp([lbk]'终点坐标验证: (' num2str(X(end)) 'μm, ' num2str(Y(end)) 'μm)'[rbk]);
函数或变量 'new_internal' 无法识别。
出错 parse_element_data (第 9 行)
data.internal = new_internal(etype);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
出错 gds_element (第 145 行)
data = parse_element_data(etype, varargin);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
出错 euler6 (第 86 行)
element = gds_element('boundary', ...
求个大佬帮帮我





w = 1.6; %
R_min = 15;
R_max = 600;
R_eff = 29;
N = 1000; %
theta_target = pi;
L_total = theta_target * R_eff;
A = sqrt(L_total / (1/R_min - 1/R_max));
dl = L_total / N;
theta = 0;
x = 0;
y = 0;
X = zeros(1, N+1);
Y = zeros(1, N+1);
Theta = zeros(1, N+1);
X(1) = x;
Y(1) = y;
Theta(1) = theta;
for i = 1:N
s = i*dl;
curvature = s/(A^2) + 1/R_max;
R = 1/curvature;
dtheta = dl/R;
theta = theta + dtheta;
dx = dl * cos(theta);
dy = dl * sin(theta);
x = x + dx;
y = y + dy;
X(i+1) = x;
Y(i+1) = y;
Theta(i+1) = theta;
end
figure;
plot(X, Y, 'b-');
axis equal;
title('Euler Bend Verification (μm units)');
xlabel('X (μm)'); ylabel('Y (μm)');
grid on
layer = 1;
dtype = 0;
filename = 'Euler_Bend_Final.gds';
nx = -sin(Theta);
ny = cos(Theta);
left_X = X + (w/2)*nx;
left_Y = Y + (w/2)*ny;
right_X = X - (w/2)*nx;
right_Y = Y - (w/2)*ny;
polygon = [lbk]left_X', left_Y';
right_X(end:-1:1)', right_Y(end:-1:1)';
left_X(1), left_Y(1)[rbk];
polygon_db = polygon * 1e3;
gds_lib = gds_library('BEND', 'uunit', 1e-6, 'dbunit', 1e-9);
structure = gds_structure('MAIN');
element = gds_element('boundary', ...
'xy', polygon_db, ...
'layer', layer, ...
'dtype', dtype);
structure = add_element(structure, element);
gds_lib = add_struct(gds_lib, structure);
write_gds_library(gds_lib, filename);
%% 诊断输出(消除range依赖)
disp('===== 诊断信息 =====');
disp([lbk]'X方向跨度: ' num2str(max(X)-min(X)) 'μm'[rbk]);
disp([lbk]'Y方向跨度: ' num2str(max(Y)-min(Y)) 'μm'[rbk]);
disp([lbk]'多边形顶点数: ' num2str(size(polygon,1))[rbk]);
disp([lbk]'GDS文件路径: ' fullfile(pwd, filename)[rbk]);
disp([lbk]'终点坐标验证: (' num2str(X(end)) 'μm, ' num2str(Y(end)) 'μm)'[rbk]);
函数或变量 'new_internal' 无法识别。
出错 parse_element_data (第 9 行)
data.internal = new_internal(etype);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
出错 gds_element (第 145 行)
data = parse_element_data(etype, varargin);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
出错 euler6 (第 86 行)
element = gds_element('boundary', ...
求个大佬帮帮我





