| |
Corel FORUM Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych |
 |
CorelDRAW - grafika wektorowa - eksport współrzędnych środków obiektów do pliku
AgnieszkaG - 19 Luty 2014, 11:37 Temat postu: eksport współrzędnych środków obiektów do pliku Witam,
mam plik, w którym naniosłam 300 elips i potrzebuję go wyeksportować z cdr jako plik, który odczytam w excelu i będzie zawierał współrzędne x i y poszczególnych obiektów.
Będę bardzo wdzięczna za pomoc.
Pozdrawiam
s-p-i-n - 19 Luty 2014, 11:59
raczej nie wykonalne
tegraf - 19 Luty 2014, 12:37
Narysuj jedną elipsę o średnicy 50 mm na kartce o wymiarach 100x100 mm. Umieść środek elipsy w punkcie o współrzędnych 25, 25 mm (lewy, dolny narożnik). Wyeksportuj jako svg. Otwierając ten plik w notatniku, znajdziesz gdzieś linię podobną do tej:
| Kod: | | <circle class="fil0 str0" cx="25" cy="75" r="25"/> |
Cx to współrzędna x, Cy - to współrzędna Y. r - promień. Od razu widać, że współrzędna Y jest liczona inaczej (0,0 to lewy górny róg, inaczej niż w Corelu, wartość 75 wynika z liczenia 100-25=75). Więc będzie Ci potrzebny jakiś "czyściciel" tego pliku ze zbędnych danych oraz obliczający poprawną współrzędną Y - chyba, że nie trzeba lub zmienisz początek współrzędnych w Corelu.
Nic innego chyba się nie da wykombinować.
AgnieszkaG - 19 Luty 2014, 13:27
Ok, dzięki. Fakt, liczy y inaczej, a moje współrzędne były na tyle szczegółowe, że nie widziałam tego na pierwszy rzut oka. Dzięki za pomoc!
chezare - 20 Luty 2014, 07:50
Prościej chyba byłoby napisać kilka linijek makra. Jedno kliknięcie i po robocie.
Może np. tak:
| Kod: | Sub elipsy()
'deklaracje zmiennych
Dim x As Double
Dim y As Double
Dim w As Double
Dim h As Double
Dim s As String
Dim el As Shape
'koniec deklaracji
ActiveDocument.Unit = cdrMillimeter 'zmiana czytanych wartości na milimetry,
'standardowo są cale
s = "" 'wyczyszczenie łańcucha tekstu do którego będą wpisywane wartości
For Each el In ActivePage.Shapes 'pętla wyszukująca na stronie elipsy,
'tylko elipsy :-)
If el.Type = cdrEllipseShape Then 'jak się jakaś znajdzie to
el.GetPosition x, y 'czytana jest jej pozycja w odniesieniu do początku wsp.
'lewa i górna krawędź
el.GetSize w, h 'a tutaj szerokość i wysokość elipsy
'tutaj zapamiętywane są wartości
s = s + str(x) & ";" & str(y) & ";" & str(w) & ";" & str(h) & Chr(13)
End If
Next el
If s <> "" Then 'jeśli napis przechowujące wartości nie jest pusty
'to są one wpisywane na stronę, wystarczy je skopiować
ActiveLayer.CreateArtisticText ActivePage.SizeWidth, ActivePage.SizeHeight, s, _
cdrPolish, , "Arial", 12, cdrFalse, cdrFalse, , cdrLeftAlignment
End If
End Sub
|
Powpisywałem te głupie komentarze żeby mnie kolega Szaman nie sponiewierał
Wszystko za apostrofem można pokasować.
To oczywiście zadziała tylko wtedy kiedy elipsy nie zostały "skrzywione" i program widzi je jako elipsy. Wystarczy skopiować tekst, wkleić do np. notatnika, zapisać i otworzyć w Excelu wybierając jako znak rozdzielający średnik.
|
|