Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

Makra - klopot z końcówką makra - kontur jako kształt + spawaj

Krzysztof83 - 29 Sierpień 2016, 18:16
Temat postu: klopot z końcówką makra - kontur jako kształt + spawaj
Witam, tak jak w temacie,

mam problem z końcówką makra.
Makro zastosowane np. do prostokąta z konturem.

Chce zamienić kontur na kształt i zespawać z prostokątem.

Do tego momentu udało się , ale pozostają mi 3 elementy tzn.:
Prostokąt wyjściowy
Kontur
i Prostokąt zespawany

Jak zakończyć makro, aby usunął prostokąt wyjściowy i kontur?

Do czego makro potrzebne?
Wykonuje sporo operacji:
1.zamień kontur na krzywą
2. zespawaj
i chciałem to połączyć, traktuje to też jako wstęp do zapoznania się z makrami w CORELU.

Poniżej makro które udało mi się stworzyć:

Sub zmiananazwyrozloczzmiananazwy()
' Recorded 2016-08-29

Dim TymczasowaNazwa As Shape
Dim TymczasowaNazwaKrawedzi As Shape

Set TymczasowaNazwa = ActiveSelection
ActiveSelection.ObjectData("Name").Value = "Tymczasowa Nazwa"

Set TymczasowaNazwaKrawedzi = TymczasowaNazwa.Outline.ConvertToObject
TymczasowaNazwaKrawedzi.ObjectData("Name").Value = "Tymczasowa Nazwa Krawedzi"

Dim zespawany As Shape

Set zespawany = TymczasowaNazwa.Weld(TymczasowaNazwaKrawedzi, True, True)
zespawany.ObjectData("Name").Value = "krzywa"

'TymczasowaNazwa.Delete
'TymczasowaNazwaKrawedzi.Delete
End Sub

Pozdrawiam.

tomek123 - 31 Sierpień 2016, 10:59

przecież jak zespawasz to nie masz elementu wyjściowego, tylko wynikowy, nie trzeba nic usuwać, nie rozumiem?!? czy coś zostaje po zastosowaniu tego makra co trzeba usunąć?
Krzysztof83 - 31 Sierpień 2016, 14:24

tomek123 napisał/a:
przecież jak zespawasz to nie masz elementu wyjściowego, tylko wynikowy, nie trzeba nic usuwać, nie rozumiem?!? czy coś zostaje po zastosowaniu tego makra co trzeba usunąć?


Nagrałem makro gdzie:
1. zamieniłem kontur obiektu na krzywą
2. zespawałem obiekt i i jego wydzielona krzywą.

Po takim działaniu zostają mi 3 elementy:
1 Obiekt wyjściowy ( bez konturu )
2. krzywa wydzielona z obiektu wyjściowego.
3. obiekt zespawany z obiektu dwóch powyższych

---------
OK
Chyba faktycznie coś pomieszałem, może to dlatego że nagrywałem makro w 2 częściach:
1. Zamiana konturu na krzywą
2. spawanie

Do tego coś majstrowałem ze zmianami nazwy obiektu.
I później to łączyłem.
To chyba dlatego.

Przepraszam za wypisywanie głupot :-/

grzjanik - 19 Grudzień 2016, 15:10
Temat postu: Zrobione
Skopiuj całość i przetestuj. Daj znać czy o to chodziło.
Kod:
Sub SpawaKonturZObiektem()
    If ActiveSelection.Shapes.count = 0 Then MsgBox "Zaznacz obiekt": Exit Sub
    Dim OrigSelection As ShapeRange
    Set OrigSelection = ActiveSelectionRange
    Dim s1 As Shape
    Set s1 = OrigSelection(1).Outline.ConvertToObject
    Dim s2 As Shape
    Set s2 = s1.Weld(OrigSelection(1), True, True)
    OrigSelection.Delete
    s1.Delete
    s2.OrderToFront
End Sub
Pozdro. GrzJanik


Powered by phpBB modified by Przemo © 2003 phpBB Group