Приветствую Вас, Гость! Регистрация RSS

DelphiVS

Понедельник, 13.05.2024
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Solidworks » Марка материала детали (Просмотр марки материала деталей, входящих в сборку SW)
Марка материала детали
tribotexnikДата: Понедельник, 14.09.2009, 22:10 | Сообщение # 1
Новичек
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Доброго времени суток smile

По работе возникла необходимость определять указана ли марка материала в деталях, входящих в сборку. При этом детали подсборок так же должны быть проверены на наличие марки материала.

В итоге нужно получить отчёт, в ктором будет отражено обозначение детали, путь к документу детали и марка её материала.

С кодом для детали разобрался:

procedure TForm1.Button1Click(Sender: TObject);
VAR
swapp:variant;
md:variant;
ft:variant;
ftar:array of variant;
ff:variant;
kol,i:integer;

begin
swapp:=GetActiveOleObject('SldWorks.application');
md:=swapp.ActiveDoc;
ft:=md.FeatureManager;
kol:=ft.GetFeatureCount(true);
setlength(ftar,kol);
ftar:=ft.getFeatures(true);
if ftar<>nil then
begin
for i:=0 to kol-1 do
begin
ff:=ftar[i];
if ff.GetTypeName='MaterialFolder' then
listbox1.Items.Add(md.GetPathName+'->'+ff.Name);
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.

Вот что в итоге:

А вот как просмотреть марку материала деталей в сборке (а так же включая подсборки) понять не могу cry

Прикрепления: 3928692.jpg (21.9 Kb)


Сообщение отредактировал tribotexnik - Понедельник, 14.09.2009, 22:11
 
MaxaДата: Вторник, 15.09.2009, 05:53 | Сообщение # 2
Школьник
Группа: Администраторы
Сообщений: 22
Репутация: 0
Статус: Offline
:D В сборке делаем все тоже самое, только предварительно
находим список всек компонентов сборки
GetComponents(false);
false указывает на то что будут использоваться и подсборки.

procedure TForm1.Button1Click(Sender: TObject);
VAR
swapp:variant;
md,md1:variant;
ass:variant;
ft:variant;
ftar,ftar1:array of variant;
ff,ff1:variant;
kol,kol1,i,j:integer;
begin
swapp:=GetActiveOleObject('SldWorks.application');
md:=swapp.ActiveDoc;
ass:=md;
kol:=ass.GetComponentCount(false);
setlength(ftar,kol);
ftar:=ass.GetComponents(false);
if ftar<>nil then
begin
for i:=0 to kol-1 do
begin
ff:=ftar[i];
md1:=ff.getmodeldoc;
ft:=md1.FeatureManager;
kol1:=ft.GetFeatureCount(true);
setlength(ftar1,kol1);
ftar1:=ft.getFeatures(true);
if ftar1<>nil then
begin
for j:=0 to kol1-1 do
begin
ff1:=ftar1[j];
if ff1.GetTypeName='MaterialFolder' then
listbox1.Items.Add('[' + ff.Name + '][' + ff.getpathname+ '][' + ff1.Name+']');
end;
end;
end;
end;
end;

Приятной работы.

 
Форум » Программирование » Solidworks » Марка материала детали (Просмотр марки материала деталей, входящих в сборку SW)
  • Страница 1 из 1
  • 1
Поиск: