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

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Zapis danych SVG do schowka
Autor Wiadomość
zyzio 
Praktyk


Dołączył: 06 Cze 2011
Posty: 90
Skąd: Podkarpacie
Wysłany: 22 Październik 2019, 11:38   Zapis danych SVG do schowka

Cześć. Koledzy istnieje techniczna możliwość, aby zapisać dane o krzywych jako svg w formie tekstowej prosto do schowka?
Pytam ponieważ bardzo często eksportuję krzywe svg, które następnie są importowane i używane blenderze, natomiast ten ciągły eksport i import jest nieco uciążliwy i czasochłonny, a jego zautomatyzowanie poprzez schowek byłoby bardzo dużym ułatwieniem, bo myślę, że po stronie blendera też powinno się dać skorzystać z danych w schowku i przekształcić je w ścieżki przy pomocy pythona.

Jak zwykle z góry dziękuję
 
 
tomek123
Bywalec
tomek123


Wersja CorelDRAW: X7
Pomógł: 8 razy
Dołączył: 06 Gru 2014
Posty: 34
Skąd: Tychy
Wysłany: 6 Grudzień 2019, 17:39   

Utwórz moduł w VBA, wklej tam poniższy kod i z Managera makr odpal SVGtoClipboard
Umieszcza w schowku tag svg zaznaczonego wektora, wymaga stworzenia katalogu C:/TEMP dla pliku tymczasowego
Kod:
Option Explicit
Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Public Const GHND = &H42
Public Const CF_TEXT = 1
Public Const MAXSIZE = 4096
Private Function ctrlX(str$)
    Dim hGlobalMemory&, lpGlobalMemory&, hClipMemory&, x&
    hGlobalMemory = GlobalAlloc(GHND, Len(str) + 1)
    lpGlobalMemory = GlobalLock(hGlobalMemory)
    lpGlobalMemory = lstrcpy(lpGlobalMemory, str)
    If GlobalUnlock(hGlobalMemory) <> 0 Then GoTo OutOfHere2
    If OpenClipboard(0&) = 0 Then Exit Function
    x = EmptyClipboard()
    hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)
OutOfHere2:
    If CloseClipboard() = 0 Then MsgBox "Could not close Clipboard."
End Function
Sub SVGtoClipboard()
    If ActiveSelection.Shapes.count = 0 Then
        MsgBox "Zaznacz obiekt..."
        Exit Sub
    End If
    Dim expflt As ExportFilter, expopt As StructExportOptions, _
        path$, svg$, iFile%, poz&
    path = "C:\TEMP\file.svg"
    Set expopt = New StructExportOptions
    expopt.UseColorProfile = False
    Set expflt = ActiveDocument.ExportEx(path, cdrSVG, cdrSelection, expopt)
    expflt.Finish: iFile = FreeFile
    Open path For Input As #iFile
    svg = Input(LOF(iFile), iFile)
    Close #iFile: Kill path
    poz = InStr(1, svg, "<svg", vbTextCompare)
    svg = Mid(svg, poz, Len(svg) - poz)
    ctrlX svg
End Sub
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.08 sekundy. Zapytań do SQL: 13