![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
AutoCAD automation
GLFox © (2004-12-09 13:39:00)Необходимо вызвать функцию SelectionSet.SelectXXX, но проблема!
При передаче параметра FilterType начинается грязная ругань, на то что invalid.
Если кто может, нарисуйте пример вызова.
k2 (2005-01-31 08:32:00) [1]С SelectionSet очень несложно работать, просто при раннем связывании нужно правильно объявить фильтр (пример давала пару недель назад, но поиском не могу найти, так как он был в потрепаловке):
procedure TForm1.Button1Click(Sender: TObject);
var
acad: AcadApplication;
adoc: IAcadDocument;
ss: IAcadSelectionSet;
ft, fd, llp, urp: OleVariant;
i: integer;
begin
try
acad := GetActiveOleObject('AutoCAD.Application')as AcadApplication;
except
showmessage('Откройте Автокад.');
end;
if not assigned(acad) then
exit;
adoc := acad.ActiveDocument;
try
ss := adoc.SelectionSets.Add('ss');
except
ss := adoc.SelectionSets.Item('ss');
end;
if not assigned(ss) then
exit;
ft := VarArrayCreate([0, 0], varSmallint);
fd := VarArrayCreate([0, 0], varVariant);
ft[0] := 0; fd[0] := 'Spline';
ss.Clear;
ss.Select(acSelectionSetAll, EmptyParam, EmptyParam, ft, fd);
ss.Highlight(true);
acad.Update;
Memo1.Lines.Add(IntToStr(ss.Count));
end;
Владимир (2005-01-29 14:43:00) [2]А какая версия када? Работает по разному.
SelectionSet вообще работает своебразно :)
скорее всего это связано с тем, что оно несколько по разному поддерживается в командной строке, лиспе и VB , поэтому лучше на мой взгляд эту SelectionSet на VB вообще обойти, не для него она делалась. я решал проблему предварительно посылая через SendCommand очистку селекшинов или наоборот select с фильтром