Tracciare una linea perpendicolare con lisp

Angelo2449

Utente Junior
Professione: Pensionato
Software: Autocad
Regione: Lombardia
#1
Salve,

sto tentando di tracciare una linea perpendicolare ad una precedentemente tracciata usando Autolisp ma, anche dopo innumerevoli tentativi non sono riuscito nell'intento.

Questo dovrebbe essere il codice :

Codice:
(command-s "_line" point1 point2 "")
(command-s "_line" pointo "-per" point1 point2 "")
la seconda istruzione dovrebbe tracciare una linea dal punto "pointo" perpendicolarmente alla linea point1 point2 ma ciò non avviene.

Grazie
 

dieva

Utente Standard
Professione: CAD Manager - AutoCAD sw developer
Software: AutoCAD | BricsCAD | 3DSMax | Revit
Regione: puglia
#2
Salve,

sto tentando di tracciare una linea perpendicolare ad una precedentemente tracciata usando Autolisp ma, anche dopo innumerevoli tentativi non sono riuscito nell'intento.

Questo dovrebbe essere il codice :

Codice:
(command-s "_line" point1 point2 "")
(command-s "_line" pointo "-per" point1 point2 "")
la seconda istruzione dovrebbe tracciare una linea dal punto "pointo" perpendicolarmente alla linea point1 point2 ma ciò non avviene.

Grazie
prova:

(command "_line" point1 point2 "")
(command "_line" p3 (osnap point2 "per" ) "")
 

Angelo2449

Utente Junior
Professione: Pensionato
Software: Autocad
Regione: Lombardia
#3
Non funziona.

E' impossibile applicare il concetto di perpendicolarità usando un solo punto (point2).

A parte l'errore contenuto nel mio post "-per" invece di "_per", il concetto è quello, la sintassi è errata, infatti genera un errore.

Ho provato ad usare "_last" al posto di "point1 point2" ma non funziona, credo sempre per sintassi errata.

Grazie.
 

dieva

Utente Standard
Professione: CAD Manager - AutoCAD sw developer
Software: AutoCAD | BricsCAD | 3DSMax | Revit
Regione: puglia
#4
Non funziona.

E' impossibile applicare il concetto di perpendicolarità usando un solo punto (point2).
Per funzionare, dal punto point2 deve passarci un altra linea o un'altra entità... altrimenti...
 

GP.

Utente Senior
Professione: Nientologo
Software: uozapp
Regione: Vercelli
#5
...sto tentando di tracciare una linea perpendicolare ad una precedentemente tracciata usando Autolisp ma, anche dopo innumerevoli tentativi non sono riuscito nell'intento.
Devi calcolare il punto e poi utilizzarlo per creare la linea.

Codice:
;; Project Point onto Line  -  Lee Mac
;; Projects pt onto the line defined by p1,p2

(defun LM:ProjectPointToLine ( pt p1 p2 / nm )
    (setq nm (mapcar '- p2 p1)
          p1 (trans p1 0 nm)
          pt (trans pt 0 nm)
    )
    (trans (list (car p1) (cadr p1) (caddr pt)) nm 0)
)
 

Cristallo

Utente Standard
Professione: Leggo e confronto
Software: Lettura critica
Regione: Fuori dalla cerchia
#6
Diventa molto piu facile attivare temporaneamente via lisp un osnap perpendicolare

(setq OldOsMode (getvar "osmode")) ;; conserva lo stato attuale degli osnap
(setvar "Osmode" 128) ;; setta l'osnap a Perpendicolare

... routine creazione linea (poiche l'osnap è attivato il puntare in un punto x,y diventa secondario rispetto all'osnap)
...
...

(setvar "osmode" oldosmode) ;; ripristina l'originario valore degli osnap prima della procedura.

In questo modo, senza calcoli di coordinate, sono riuscito a tracciare una linea Tangente Tangente a 2 cerchi uno sul quadrante superiore ed uno sul quadrante inferiore.