Autore |
Discussione |
|
byerry
Nuovo Utente
Regione: Campania
Prov.: Napoli
Città: Napoli
31 Messaggi |
Inserito il - 03/07/2007 : 16:48:27
|
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
|
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
|
|
|
byerry
Nuovo Utente
Regione: Campania
Prov.: Napoli
Città: Napoli
31 Messaggi |
Inserito il - 04/07/2007 : 09:31:17
|
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 |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 04/07/2007 : 10:09:13
|
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 |
|
|
byerry
Nuovo Utente
Regione: Campania
Prov.: Napoli
Città: Napoli
31 Messaggi |
Inserito il - 04/07/2007 : 17:56:08
|
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] |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 04/07/2007 : 18:59:06
|
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! |
|
|
|
Discussione |
|