Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta?

  • 20 odgovora
  • 11.267 pregleda
Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 26.10.2006. u 11:01 · pre 243 meseci #1
Da li je moguce u Corelu dobiti obim naprimer nacrtanog pravilnog ili nepravilnog objekta? Da ne bih koristio CAD za ovo interesuje me da li Corel to moze. Potrebno mi je da izracunam obim svih nacrtanih objekata na jednoj stranici, oni su uglavnom zatvorenog obima i pravih linija. Ne znam da li je to moguce i kako?
Potpis
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 01.11.2006. u 09:44 · pre 243 meseci #6
U prilogu su ti fajlovi koji su neophodni.

Kako postaviti celu stvar?

Neohodni uslovi:
1. Instalirana VBA podrska za Corel (jedna od komponenti instalacije)
2. Verzija Corel-a koja podrzava VBA

Redosled:
1. Raspakovati fajlove koje sam ti prilozio u neki folder u kom ces inace drzati datoteke ovog tipa
2. Otvoriti nov Corel dokument
3. Ici na Tools -> Visual Basic -> VB Editor
4. Dodati ova dva fajla projektu GlobalMacros sa File -> Import File (dodajemo ga ovom projektu da bi mogao da racunas obim u bilo kom dokumentu)
5. Sacuvati projekt GlobalMacros.gms

Koriscenje:
Za bilo koji dokument koji se otvori, kada je potrebno racunanje obima ide se na Tools -> Visual Basic -> Play i izabere se Macros in: GlobalMacros, a onda se izabere makro Funkcije.Obim i pokrene Run

Ako je potrebno racunanje u nekoj drugoj jedinici (cm, mm) onda se ide na VB Editor i u projektu od tekuceg dokumenta VBA Projekt se podesi Unit za ThisDocument.

Napomena:
Razvoj je izvrsen na Corel Draw 9.0
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 13:00 · pre 243 meseci #7
Citat:
goranvuc: Razvoj je izvrsen na Corel Draw 9.0

I nece raditi u 3x a mislim ni 11 ni 12 jer objekat ThisDocument nije vise podrzan. Sada je umesto njega ActiveDocument. Sve ostalo (sto se ovog slucaja tice) je manje/vise isto.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 16:36 · pre 243 meseci #8
Pa u kodu i ne spominjem (referenciram) ThisDocument, vec samo opisujem kako intervenisati u slucaju da je potrebna druga jedinica mere. Hvala na sugestiji u svakom slucaju.

P.S. @Shadowed, da li si probao?
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 18:30 · pre 243 meseci #9
Jesam, i usput napravio obuhvatniju f-ju malo jer sam ja vec duze vreme hteo to da napravim ali nisam znao da je podrzano u samom corel-u. Bas sam pre neki dan trazio formule za bezierove krive po wikipediji...
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 18:34 · pre 243 meseci #10
Imam ja obuhvatnije funkcije posto radim profesionalnu automatizaciju poslova u Corel Draw za stamparije, ali ovde sam dao samo resenje za ono sto je covek pitao. Uvek reagujem kada neko izjavi nesto tipa: "U Corel-u ne moze da se uradi to i to.." Mislim da uz kombinaciju Visual Basic Active X komponenti i VBA u okviru Corel Draw moze da se uradi sta god coveku padne na pamet.

Mnogima sam ustedeo sate i dane koje bi potrosili na besmisleno ponavljanje odredjenih radnji.

Pozdrav, drago mi je da se jos neko zanima za ovu problematiku.
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 19:25 · pre 243 meseci #11
VB programer koji je radio u Corel-u... Kako se ne bih zanimao :).

Jedino nisam gledao kako se prave plugin-ovi. Tj. nema dokumentacije o tome uz Corel a nisam ni na njihovom sajtu nasao (doduse, nisam pretrano studiozno ni trazio :)).
Pretpostavljam da se pravi neka COM klasa koja treba da implementira neke interfejse... (?)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 19:47 · pre 243 meseci #12
Nema potrebe za izradom takvih plugin-ova. Ja sve postizem tako sto pravim ActiveX dll koji radi odredjene poslove u Corelu (funkcije koje rade sa referenciranom CorelDraw aplikacijom, npr. napravio sam ActiveX komponentu koja pravi EAN barkod u Corel-u bolje nego Corelov Barcode Wizard, moze da se automatizuje, za ispis brojeva koristi bilo koji font po izboru, sve je u krivama i CMYK-u, potpuno je u skladu sa najaktuelnijom GS1 specifikacijom...) a onda takve komponente samo referenciram i koristim u globalnim makroima koje prilagodjavam korisnicima.

Pokazalo se da je to optimalan nacin razvoja i upotrebe, jer se korisnici rasterete kompleksnosti izrade i instalacije, stiti se izvorni kod od zloupotrebe ...
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 19:55 · pre 243 meseci #13
U svakom slucaju, moja radoznalost ipak prevazilazi prakticnost, moracu ipak da prostudiram to kad budem imao vremena :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 19:58 · pre 243 meseci #14
Javi ako otkrijes nesto "pametno", ipak nas ima vrlo malo koji se bave ovom kombinacijom alata u primeni, ne samo kod nas vec i u svetu (postoji vrlo malo resursa na internetu vezanih za makroe u corelu, a jos manje firmi koje to profesionalno rade).

Pozdrav!

P.S. Sad sam se nesto setio, da li mislis na plug-inove u corel-u koji rade sa bitmapiranim objektima? (Add-Ins iz Bitmaps menija). Koliko znam oni se prave na isti nacin i kompatibilni su sa Photoshop plug-inovima. Na zalost, nisam imao vremena da se i sa tim bavim, specijalnost mi je VB i VBA pa sam to znanje koristio svuda gde je moglo da se upotrebi, a ovo se radi na drugi nacin.

[Ovu poruku je menjao goranvuc dana 05.11.2006. u 21:16 GMT+1]
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 21:09 · pre 243 meseci #17
Daje duzinu u jedinicama koje se koriste u datom dokumentu (tj. u jedinicama horizontalnog lenjira):

Code:
Public Sub CurveLenght()
    If ActiveDocument.Selection.Shapes.Count = 0 Then
        MsgBox ("Select shape first.")
        Exit Sub
    Else
        If ActiveDocument.Selection.Shapes(1).Type <> cdrCurveShape Then
            MsgBox ("Shape must be a curve.")
            Exit Sub
        Else
           MsgBox (ConvertUnits(ActiveDocument.Selection.Shapes(1).Curve.Length, ActiveDocument.unit, ActiveDocument.Rulers.HUnits) & GetUnitName(ActiveDocument.Rulers.HUnits))
        End If
    End If
End Sub

Private Function GetUnitName(unit As cdrUnit) As String
    Select Case unit
        Case cdrAgate: GetUnitName = "Agate"
        Case cdrCentimeter: GetUnitName = "cm"
        Case cdrCicero: GetUnitName = "Cicero"
        Case cdrDidots: GetUnitName = "Didots"
        Case cdrFoot: GetUnitName = "Foot"
        Case cdrInch: GetUnitName = "Inch"
        Case cdrKilometer: GetUnitName = "km"
        Case cdrMeter: GetUnitName = "m"
        Case cdrMile: GetUnitName = "Mile"
        Case cdrMillimeter: GetUnitName = "mm"
        Case cdrPica: GetUnitName = "Pica"
        Case cdrPixel: GetUnitName = "Pixel"
        Case cdrPoint: GetUnitName = "pt"
        Case cdrTenthMicron: GetUnitName = "TenthMicron"
        Case cdrUnitH: GetUnitName = "UnithH"
        Case cdrUnitQ: GetUnitName = "UnitQ"
        Case cdrYard: GetUnitName = "Yard"
    End Select
End Function
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 05.11.2006. u 21:10 · pre 243 meseci #18
Kasnis ;)

Mislim da je moje resenje elegantnije - bez uvrede. Inace, da li si to negde nasao na Net-u ili je iz sopstvene radionice?

I jos nesto: u starijim verzijama nije podrzan "ActiveDocument.Rulers.HUnits" kao ni "ConvertUnits"
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 07.11.2006. u 22:41 · pre 242 meseci #19
@goran

Svaka cast. hvala puno. ovo mi je puno pomoglo.

inace, ovo moze da posluzi i za merenje duzine linija. sad konacno imam sve sto mi treba u corelu.

da mogu samo da ti docaram koliko mi ovo skracuje rad.

hvala jos jednom
Potpis
A computer once beat me at chess, but it was no match for me at kick boxing
Re: Kako u CORELU automatski dobiti duzinu obima nacrtanog objkta? 07.11.2006. u 23:31 · pre 242 meseci #20
Nisam tad stigao da pogledam tvoj kod a posle sam zaboravio temu :) (dnevno procitam par stotina poruka na nekoliko desetina tema..).
Ja sam napisao taj kod cisto za sebe u X3. Ono sto mi je zapravo bilo bitno a sto sam video iz tvog prvog koda je Curve.Length. Ostalo je rutina :).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme