TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 Programmazione CAD
 Funzione SelectAtPoint

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

V I S U A L I Z Z A    D I S C U S S I O N E
TOTONNO Inserito il - 08 marzo 2011 : 15:44:30


Salve a tutti...
Cercavo aiuto per eseguire correttamente la funzione SelectAtPoint.


Utilizzavo il seguente codice per estrarre gli attributi di un blocco avente nome 'blockName'
Funzione che scrissi con vb6 e utilizzavo con autocad map 2009.
La funzione è all'interno di un programma esterno ad autocad e funzionava correttamente.



'Function CreateSelectionSet(Optional ssName As String = "sset") As AcadSelectionSet
'Dim ss As AcadSelectionSet
'On Error Resume Next
'Set ss = acadDoc.SelectionSets(ssName)

'If Err Then Set ss = acadDoc.SelectionSets.Add(ssName)
'ss.Clear
'Set CreateSelectionSet = ss
'End Function


' rende il valore dell'attributo del blocco
'Function GetAttVal(blockName As String, attributeName As String, pt() As Double) As Variant
'Dim fType(0) As Integer
'Dim fData(0) As Variant

'Dim blkTmp As AcadBlockReference

'Dim j As Integer
'Dim tol As Double

'Set sss = CreateSelectionSet
'fType(0) = 2
'fData(0) = blockName



'sss.SelectAtPoint pt, fType, fData

'If sss.Count = 1 Then
'Set blkTmp = sss.Item(I)
'If blkTmp.HasAttributes Then
'atts = blkTmp.GetAttributes
'for j = LBound(atts) To UBound(atts)
'If LCase(atts(j).TagString) = LCase(attributeName) Then
'GetAttVal = atts(j).TextString
'End If
'Next
'End If
'End If
'Set sss = Nothing
'Set blkTmp = Nothing
'End Function




ORA ho necessiata di riscriverla con Visual Studio e utilizzando autocad 2011.
Ho fatto qualche piccola modifica per la dichiarazione delle variabili ed è questo il codice:


' rende il valore dell'attributo del blocco
Function GetAttVal(ByVal blockName As String, ByVal attributeName As String, ByVal pt() As Double) As Object
Dim fType As Integer
Dim fData As Object

Dim blkTmp As Autodesk.AutoCAD.Interop.Common.AcadBlockReference
Dim j As Integer
Dim I As Integer

Dim sss = CreateSelectionSet()
fType = 2
fData = blockName


sss.SelectAtPoint(pt, fType, fData)



If sss.Count = 1 Then
blkTmp = sss.Item(I)

If blkTmp.HasAttribute Then
Dim atts = blkTmp.GetAttributegs
For j = LBound(atts) To UBound(atts)
If LCase(atts(j).TagString) = LCase(attributeName) Then
GetAttVal = atts(j).TextString
Else
End If
Next
End If

End If
sss = Nothing
blkTmp = Nothing

End Function


Il problema che da l'errore 5 Argomento filter type non valido nella funzione SelectAtPoint.
Dovè l'errore ??
Grazie a tutti.

TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,11 secondi.