Trim в Drafting

Программирование для CATIA.

Trim в Drafting

Сообщение RIMs » 30 июн 2009 01:20

какую функцию использовать, чтобы подрезать линию 2Д?

Спасибо.
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Trim в Drafting

Сообщение keeper » 30 июн 2009 20:52

А при чём здесь CAA-RADE? :D
Такие вопросы сюда: viewforum.php?f=156
Линии что созданные с 3-мерхних моделей подрезать нельзя! можна лишь создать с них копию, и копию уж подрезать, а спроектированную скрыть!
Вложения
Аватара пользователя
keeper
Постоянный участник
Постоянный участник
 
Сообщения: 618
Зарегистрирован: 15 дек 2008 13:28
Откуда: Дд

Re: Trim в Drafting

Сообщение RIMs » 30 июн 2009 22:04

Спасибо Кипер, меня собственно и интересует как подрезать две от руки нарисованые линий (без 3Д).
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Trim в Drafting

Сообщение Artem » 02 июл 2009 07:13

кое что есть вот здесь:
http://www.coe.org/Collaboration/Discus ... fault.aspx
У Factory2D есть метод CreateIntersection(reference)........У drawingdocument есть CreateReferenceFromName..........вот только как это имя получить вопрос (.name естественно не катит, Drawing1/!nameofline тоже)
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Trim в Drafting

Сообщение booSter » 02 июл 2009 12:00

IMHO: CreateIntersection создаёт пересечение 3D-геометрии с плоскостью скетча - следовательно для дравинга (и данной задачи) бесполезен...
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Trim в Drafting

Сообщение Artem » 02 июл 2009 13:24

ну там еще CreateIntersections есть....А вообще вот так:
Код: Выделить всё
Sub CATMain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = drawingDocument1.Selection

selection1.Search "CATDrwSearch.2DLine.Name='Line.2',all"
'Set line2 = selection1.Item(1).Value
'selection1.Search "CATDrwSearch.2DLine.Name='Line.1',all"
'MsgBox selection1.Count
CATIA.StartCommand "Break" '"Quick Trim"
selection1.Search "CATDrwSearch.2DLine.Name='Line.1',all"
'MsgBox "jjjjjjjj"
'selection1.Clear
'selection1.Add (line2)
End Sub

собственно трим треба, после своего вызова, ткнуть на элемент мышкой (селект не катит однако)...гипотетически можно конечно реализовать.....а практически западло высчитывать положение другого элемента(думаю и с быстрым тримом/бреаком + последующим удалением "лишних" линий вашу задачу можно нормально решить)
Последний раз редактировалось Artem 03 июл 2009 07:39, всего редактировалось 1 раз.
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Trim в Drafting

Сообщение RIMs » 02 июл 2009 16:28

Спасибо.
Идея в том чтобы подрезать несколько линий по одной, при этом не перещелкивая каждую. (см. рисунок), поэтому варианты Trim - Break не подходят
Вложения
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Trim в Drafting

Сообщение [PTM] » 02 июл 2009 22:45

ластик) до ближайшего
тему пренести?
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Trim в Drafting

Сообщение RIMs » 06 июл 2009 00:24

Спасибо, раньше не знал как ластик работает - полезная фича.
Но мне не подходит:
1. он подрезает, но не удлинняет
2. перещелкивать линии все равно надо, а их может быть очень не мало. И операция на одном чертеже не единичная

и для альтенативных вариантов: перерисовывать линии тоже нельзя, между ними что-то может располагаться что нельзя двигать. Даю картинку варианта.
Вложения
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Trim в Drafting

Сообщение Artem » 06 июл 2009 08:57

Необходимо чтобы часть линий обрезалась, а часть удлинялась?...И при этом автоматически определялся набор этих самых линий?......однако, для этого желательны дополнительные параметры для фильтрации(ну например суффикс/префикс какой-нить в названии подрезаемых линий). Непонятно при чем тут перерисовка и невозможность двигать другие обьекты...С удлинением (да по идее и с обрезанием) наверно придется воспользоваться вышкой - если в операции учавствуют только линии, то достаточно просто расчитать новые координаты конечных точек и задать их(.EndPoint(StartPoint).SetData)
PS. С чистым обрезанием (без удлинения) можно просто пройтись по всем линиям( кстати для выбирания стороны наверное лучше воспользоваться break - все что справо остается со старым именем, новая линия слева)
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Trim в Drafting

Сообщение RIMs » 06 июл 2009 17:22

с выделением пока проблем не вижу. Прежде чем запускать макрос выделить подрезаемые линии и последней линию границы подрезки. Line2 берется последней из найденных, Line1 перебирается от первой до предпоследней.
Selection1.Search ("Drafting.Line,sel")
Dim Line1 As Line2D
Dim Line2 As Line2D
i = Selection1.Count
Set Line1 = Selection1.Item(1).Value
Set Line2 = Selection1.Item(i).Value

Ок, поковыряюсь с математикой :) спасибо
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5