- comando IntersectWith()

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

 Tutti i Forum
 Autocad
 VBA - Visual Basic per Autocad
 comando IntersectWith()
 Nuova Discussione  Rispondi Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

byerry
Nuovo Utente


Regione: Campania
Prov.: Napoli
Città: Napoli


31 Messaggi

Inserito il - 03/07/2007 : 16:48:27  Mostra Profilo Invia a byerry un Messaggio Privato  Rispondi Quotando
Ciao Lucio, ciao ragazzi

per caso qualcuno può dirmi come farmi restituire le coordinate di un punto intersezione tra una linea e un arco trovato mediante la funzione IntersectWith().

Ovvero: ho una linea (chiamata L1) ed un arco (chiamato Arc), voglio sapere se l'intersezione tra L1 ed Arc coincide con il punto iniziale dell'arco.

Grazie e a presto[8D]

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 03/07/2007 : 17:49:28  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Ciao e ben tornato,
per il momento prova con questo, è un esempio tra una linea ed un cerchio che si trova nell'help di autocad 2006 (praticamente quello che ho io)....

Sub Example_IntersectWith()
' This example creates a line and circle and finds the points at
' which they intersect.

' Create the line
Dim lineObj As AcadLine
Dim startPt(0 To 2) As Double
Dim endPt(0 To 2) As Double
startPt(0) = 1: startPt(1) = 1: startPt(2) = 0
endPt(0) = 5: endPt(1) = 5: endPt(2) = 0
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPt, endPt)

' Create the circle
Dim circleObj As AcadCircle
Dim centerPt(0 To 2) As Double
Dim radius As Double
centerPt(0) = 3: centerPt(1) = 3: centerPt(2) = 0
radius = 1
Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius)
ZoomAll

' Find the intersection points between the line and the circle
Dim intPoints As Variant
intPoints = lineObj.IntersectWith(circleObj, acExtendNone)

' Print all the intersection points
Dim I As Integer, j As Integer, k As Integer
Dim str As String
If VarType(intPoints) <> vbEmpty Then
For I = LBound(intPoints) To UBound(intPoints)
str = "Intersection Point[" & k & "] is: " & intPoints(j) & "," & intPoints(j + 1) & "," & intPoints(j + 2)
MsgBox str, , "IntersectWith Example"
str = ""
I = I + 2
j = j + 3
k = k + 1
Next
End If
End Sub

Torna all'inizio della Pagina

byerry
Nuovo Utente


Regione: Campania
Prov.: Napoli
Città: Napoli


31 Messaggi

Inserito il - 04/07/2007 : 09:31:17  Mostra Profilo Invia a byerry un Messaggio Privato  Rispondi Quotando
Grazie Lucio, sempre preciso.

Una cosa soltanto: potresti indicarmi un modo per farmi restituire in due caselle di testo le coordinate di un punto di intersezione tra una linea ed un arco? Lavoro sul bidimensionale.[:D]

Ti ringrazio comunque in anticipo
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 04/07/2007 : 10:09:13  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Aspetta... in 2 testi quindi da scrivere sul disegno o proprio in 2 caselle di testo e quindi sul form che immagino stai utilizzando?
Se sono in "caselle di testo" (Textbox) una volta che hai trovato le coordinate le assegni alla/e caselle che inserirai tipo:
Textbox1.text = assex
Textbox2.text = assey

Altrimenti ci risentiamo
Torna all'inizio della Pagina

byerry
Nuovo Utente


Regione: Campania
Prov.: Napoli
Città: Napoli


31 Messaggi

Inserito il - 04/07/2007 : 17:56:08  Mostra Profilo Invia a byerry un Messaggio Privato  Rispondi Quotando
Si devo farle comparire in due "caselle di testo" sulla Form che sto usando.

Ho trovato un metodo, eccolo: creo una variabile punto (variant) e la pongo pari al punto d'intersezione tra retta e arco, trovo il punto d'intersezione che chiamo PntInt e faccio comparire le sue coordinate nelle caselle di testo mediante:
Text1 = PntInt(0)
Text2 = PntInt(1)

Pratico, poco elegante ma efficace.

Spero possa essere d'aiuto a qualcuno.

Grazie e ciao [:D]
Torna all'inizio della Pagina

admin
Amministratore



Regione: Veneto
Prov.: TV
Città: Treviso


188 Messaggi

Inserito il - 04/07/2007 : 18:59:06  Mostra Profilo  Visita l'Homepage di admin Invia a admin un Messaggio Privato  Rispondi Quotando
Non è che sia poco elegante, è quello che devi fare... secondo me.
L'unica cos ache potresti aggiungere secondo me sarebbero i decimali da far visualizzare nelle caselle di testo con "formatstring(..." se non ricordo male. Dovresti trovare qualcosa a riguardo nell' help di parecchi linguaggi di programmazione.
Ciao!
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi Bookmark this Topic Aggiungi Segnalibro
Vai a:
© Torna all'inizio della Pagina
Tradotto Da: Vincenzo Daniele & Luciano Boccellino- www.targatona.it | Distribuito Da: Massimo Farieri - www.superdeejay.net | Powered By: - Snitz Forums 2000 Version 3.4.03

Antidoto.org | Brutto.it | Estela.org | Equiweb.it