|
Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych
|
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
|
|
|
|
|
|
|
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
|
|
|
|
|
|
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.09 sekundy. Zapytań do SQL: 12 |
|
|