Menu

Toon bijdragen

Deze sectie stelt je in staat om alle bijdragen van dit lid te bekijken. Je kunt alleen de bijdragen zien waar je op dit moment toegang toe hebt.

Toon bijdragen Menu

Berichten - TheChris

#1
VBA / Re: Onderlijnen / underline
ma 27 04 2009, 13:43:02
Gelukt, in het begin begreep ik het niet helemaal nu ik het zag gaat dat goed. Gewoon het volgende er voor plakken.
Dim Underline As String
Underline = "%%u"

NewString = Underline & NewString

En er weer af halen met ReplaceStr()

Gr Chris Braas
#2
VBA / Re: Onderlijnen / underline
ma 27 04 2009, 11:30:25
Beste HofCad,

bedankt voor uw antwoord, maar ik wil nu een bestaande string onderlijnen, en wanneer ik er klaar mee ben de onderlijning weer makelijk weg kunnen halen.
#3
VBA / Onderlijnen / underline
ma 27 04 2009, 10:58:14
Goedendag,

Ik wil graag een tekst onderlijnen, zodat ik kan zien dat ik bezig ben met die tekst om te bewerken.
Ik zoek iets van DataArray(i).Underline = True, maar DataArray(i) is van het type Object en bij een watch zie ik:
DataArray(0) > Object/IAcadAttributeReference2

Wie kan mij helpen, zelf ben ik zover dat ik zit te denken aan teken line.
#4
VBA / Re: InsertionPoint(0)
ma 27 04 2009, 10:34:16
Hoi,

Ik heb het middels opgelost doormiddel van het volgende:

inPoint = DataArray(i).insertionPoint  ' i  array teller 0 - 200 en Dim inPoint As Variant
X: " & inPoint(0) & " Y is: " & inPoint(1)
#5
VBA / Selectie
ma 27 04 2009, 10:19:19
Nog een vraag.

Ik zou graag via select alleen een aantal attributen inlezen van een block, maar weet niet hoe ik dat kan afvangen. Wanneer je ddatte gebruikt, wordt gelijk de aangeklikte attribuut naar voren geschoven. Zoiets wil ik ook gaan gebruiken, maar ik weet niet hoe autocad dat doet.

Dus dat ik in een selectie bijvoorbeeld een aantal attributen van verschillende blocken selecteer die naar voren komen in mij select procedure.
#6
VBA / Re: Selectieset filteren Opgelost!!
ma 27 04 2009, 09:21:16
Beste HofCad,

Geen voordeel heeft mijn code ten opzichte van de jouwe. Maar ik had dat er vangemaakt voor dat ik jouw antwoord las.
Ja die LCase, waarom niet en DataArray is een verzameling van de objecten om later makelijk te kunnen bewerken, en die handle ja is niet echt nodig idd.

gr chris
#7
VBA / Re: Selectieset filteren Opgelost!!
do 23 04 2009, 11:21:09
Beste HofCAD

Je hebt gelijk, ik was er ook achter gekomen, selectie code is:

For i = 0 To ssetObj.Count - 1
    If VBA.LCase(ssetObj(i).ObjectName) = "acdbtext" Then
        Set DataArray(Teller) = ssetObj(i)
        Set DataArray(Teller) = ThisDrawing.HandleToObject(ssetObj(i).Handle)
        Teller = Teller + 1
    End If
   
    If VBA.LCase(ssetObj(i).ObjectName) = "acdbblockreference" Then
        If ssetObj(i).HasAttributes Then attributen = ssetObj(i).GetAttributes
            For i2 = LBound(attributen) To UBound(attributen)
                If Len(attributen(i).TextString) > 0 Then
                    Set DataArray(Teller) = attributen(i2)
                    Set DataArray(Teller) = ThisDrawing.HandleToObject(attributen(i2).Handle)
                    Teller = Teller + 1
                End If
            Next i2
    End If
Next i

Evengoed bedankt.
#8
VBA / InsertionPoint(0)
do 23 04 2009, 11:19:19
Hey,

Wie kan mij helpen met de het volgende probleem, ik heb vanuit een functie een array van het type Variant gevuld met Acad objecten en Attributen van blocks. Het geen waar het in eerste instantie omging was dat ik die twee type gezamkelijk in één array de Textstring uitlezen, dat is dus gelukt, maar nu wil ik de X en Y as gegevens ook uitlezen. In de watches zie ik de X en Y as gegevens netjes staan voor beide objecten in de InsertionPoint(0) gegevens.

De array is gedeclareerd als Public DataArray(0 To 200) As Variant
En waarna DataArray(i).TextString prima werkt. Maar DataArray(i).InsertionPoint(0) niet, en ik heb al meerdere opties geprobeerd met InsertionPoint. Ze staan er maar hoe kan ik ze uitlezen is dus mijn vraag?

Gr Chris
#9
VBA / Re: Selectieset filteren Opgelost!!
wo 22 04 2009, 14:56:01
Beste mensen,

Ik heb een soort zelfde probleem.
Ik ben bezig met een routine om attributen en teksten te selecteren.
Maar heb een probleem, wanneer er geen blocken en geen attrubuten zijn geselecteerd, maar wel tekst of teksten, wordt For each B In ssetObj eenmaal evengoed doorlopen. Kan iemand helpen.
Code:

Function SelectAttTekst(ByVal Teller As Integer) As Integer
  Dim Ftype(0) As Integer, Fdata(0)
  Dim grpcode(0 To 3) As Integer
  Dim datavalue(0 To 3) As Variant
  Dim B As AcadBlockReference
  Dim T As AcadText
  Dim attribuut As AcadAttributeReference
  Dim ssetObj As AcadSelectionSet

  grpcode(0) = -4: datavalue(0) = "<or" 'start or bock
  grpcode(1) = 0: datavalue(1) = "Insert"
  grpcode(2) = 0: datavalue(2) = "Text"
  grpcode(3) = -4: datavalue(3) = "or>" 'Eind or block
 


 
Set ssetObj = ThisDrawing.SelectionSets.Add("ssetObj")
   
ssetObj.SelectOnScreen grpcode, datavalue ' Ftype, Fdata
MsgBox ssetObj.Count 'Aantal items in selectionset

For Each B In ssetObj
    MsgBox "Bloknaam"
    MsgBox B.Name ' Geef bloknaam weer
    If B.HasAttributes Then attributen = B.GetAttributes
        For i = LBound(attributen) To UBound(attributen)
            MsgBox "Attrubuut gevonden"
            Set attribuut = attributen(i)
            MsgBox attribuut.TextString
        Next i
Next B


For Each T In ssetObj
    MsgBox "Tekst object gevonden"
    MsgBox T.TextString
Next T