Forum CAD

Forum dla prawdziwych CADowców
It is currently January 5, 2009, 9:48 pm

All times are UTC





Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: [Acad VBA] SelectionSet
PostPosted: 2005-03-01 18:04:41
Online
Registered User

Joined: 2005-03-01 18:04:41
Witam,
czy ktos moze opisac mi , jak zrobic prostą z pozoru rzecz:
tworze SelectionSeta, potem SelectOnScreen, zaznaczam oknem, no i teraz
wybieram: jesli obiekt to polilinia to pobieram z niego jakąć własciwosc
(np. dlugosc) i tak przelatuje po wszystkich poliliniach w SelectionSecie?
Dotyczy ACAD VBA.
Dzieki za pomoc,

--
pozdrawiam
Umiar


Top
 Profile
 
 Post subject: [Acad VBA] SelectionSet
PostPosted: 2005-03-01 19:46:59
Online
Registered User

Joined: 2005-03-01 19:46:59
Umiar wrote:
> Witam,
> czy ktos moze opisac mi , jak zrobic prostą z pozoru rzecz:
> tworze SelectionSeta, potem SelectOnScreen, zaznaczam oknem, no i
> teraz wybieram: jesli obiekt to polilinia to pobieram z niego jakąć
> własciwosc (np. dlugosc) i tak przelatuje po wszystkich poliliniach w
> SelectionSecie? Dotyczy ACAD VBA.
> Dzieki za pomoc,

Mam nadzieje, ze wszystko jasne - ponizszy kod nie uzywa metody
SelectOnScreen, lecz SelectionSetWindow, ale chyba sobie poradzisz? Odsylam
do helpa zreszta - majac ponizsze, wiesz gdzie szukac.

Dim sset As AcadSelectionSet
Dim p1 As Variant (0 To 2) As Double
Dim p2 As Variant (0 To 2) As Double

mAcad to instancja AutoCADa - ja ten kod wywolywalem z zewnatrz ACada, z
mojego programu w VB

Set sset = mAcad.Documents(mDocName).SelectionSets.Add(nazwa)

p1 = mAcad.Documents(mDocName).Utility.GetPoint(, Podaj pierwszy
narożnik obszaru :)
p2 = mAcad.Documents(mDocName).Utility.GetPoint(p1, Podaj przeciwlegly
narożnik obszaru :)

With sset
.Select acSelectionSetWindow, p1, p2
.Highlight True
.Update
End With


Dim element As AcadEntity

For Each element In sset

tu sprawdzasz, czy wlasciwosc .ObjectName obiektu element jest
taka, jak dla polilini (jedna z mozliwosci, poza tym pewnie mozna rozpoznac
przez jakies ID - ale nigdy nie zglebialem tematu)
jesli jest = nazwie klasy polilini, to cos z tym obiektem (element)
robisz, a jak nie, to

Next

--
Szwagier


Top
 Profile
 
 Post subject: [Acad VBA] SelectionSet
PostPosted: 2005-03-01 19:20:08
Online
Registered User

Joined: 2005-03-01 19:20:08
Witam, ta rzecz jest prosta nie tylko z pozoru:

1. Tworzysz selection seta w ten sposób, że wybiera on tylko polilinie -
ustawiasz filtr (w helpie VBA do Acada stosowny przykład)
dim oSet as AcadSelectionSet
Set oSet = SelectOnScreen( nie pamiętam składni....:(

2. Iterujesz w pętli : (oSet to nazwa Twojego SelectionSet’a)

For each element In oSet
... tu stosowne operacje dla polilinii
Next element

pozdrawiam


: Witam,
: czy ktos moze opisac mi , jak zrobic prostą z pozoru rzecz:
: tworze SelectionSet’a, potem SelectOnScreen, zaznaczam oknem, no
i teraz
: wybieram: jesli obiekt to polilinia to pobieram z niego jakąć
własciwosc
: (np. dlugosc) i tak przelatuje po wszystkich poliliniach w
SelectionSecie?
: Dotyczy ACAD VBA.
: Dzieki za pomoc,
: --
: pozdrawiam
: Umiar


-----
Wysłano za pośrednictwem WWW.CAD.PL (http://www.cad.pl)


Top
 Profile
 
 Post subject: [Acad VBA] SelectionSet
PostPosted: 2005-03-02 09:33:56
Online
Registered User

Joined: 2005-03-02 09:33:56
> czy ktos moze opisac mi , jak zrobic prostą z pozoru rzecz:
> tworze SelectionSeta, potem SelectOnScreen, zaznaczam oknem, no i teraz
> wybieram: jesli obiekt to polilinia to pobieram z niego jakąć własciwosc
> (np. dlugosc) i tak przelatuje po wszystkich poliliniach w SelectionSecie?

Można od razu zaznaczać tylko polilinie:


Public Sub PLineSSet()
Dim sSetObj As AcadSelectionSet
Dim PLn As AcadLWPolyline
Dim dataCode(0) As Integer
Dim dataValue(0) As Variant

On Error Resume Next
Set sSetObj = ThisDrawing.SelectionSets.Item(pline sset)
sSetObj.Delete
On Error GoTo 0
Set sSetObj = ThisDrawing.SelectionSets.Add(pline sset)

dataCode(0) = 0
dataValue(0) = LWPOLYLINE
sSetObj.SelectOnScreen dataCode, dataValue
For Each PLn In sSetObj
ThisDrawing.Utility.prompt vbCrLf + Length: + CStr(PLn.Length)
Next
End Sub


pozdrawiam
Kuba


Top
 Profile
 
 Post subject: [Acad VBA] SelectionSet
PostPosted: 2005-03-02 22:11:54
Online
Registered User

Joined: 2005-03-02 22:11:54
Dzieki wszystkim za odpowiedzi, juz wszystko dziala.


--
Pozdrawiam
Umiar


Top
 Profile
 
Post new topic Reply to topic  [ 5 posts ] 

Who is online

Users browsing this forum: Pax,michał t,Radek,Slavo,pkocak@datcc.com (Piotr), 1 guests, chicago best limo Dzikie wino - Gałczyński Konstanty Ildefons Most zagubienia - Hillar Małgorzata Wieża cierpliwości - Hillar Małgorzata Na płacz jednej panny - Morsztyn Jan Andrzej,

Not Found


New posts New posts    No new posts No new posts    Announce Announcement
New posts [ Popular ] New posts [ Popular ]    No new posts [ Popular ] No new posts [ Popular ]    Sticky Sticky
New posts [ Locked ] New posts [ Locked ]    No new posts [ Locked ] No new posts [ Locked ]    Moved topic Moved topic
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group