Newsgroup: it.comp.os.linux.development
Titolo: R: R: Autocad

 >>Massimiliano
ach!! me ne sono accorto ora!
ti seguo.
markobas

 di codice autolisp lo trovi anche in autocad:
Non ho AutoCAD. :-)
Massimiliano

 da scaricare oltre a routine scaricabili.
***********************************************
questo č una piccola routine che avevo fatto per un mio amico, permette
velocemente di
spostare un punto sull'asse z
*************************************
(defun C:bp()
(setq ed(getpoint "seleziona un punto"))
(setq fil "c:\\programmi\\acad2000\\support\\bp.txt")
 (setq x(nth 0 ed))
 (setq y(nth 1 ed))
 (setq z(nth 2 ed))
  (princ " x : ")
  (princ x)
  (princ " y : ")
  (princ y)
  (princ " z : ")
  (princ z)
  (princ "              >>>    " )
(setq nz(getreal "nuova z : "))
(if (= nz nil);*** controllo che il valore non sia nullo***
 (progn ;*** altirmenti assegno valore default ***
 (SETQ pd (OPEN fil "r"))
 (setq nz(atof(read-line pd))); **prima linea
 (close pd)
 );end progn
);end if
 (princ "la nuova z č : ")
 (princ nz)
 (setq nc(list x y nz)); ** coordinate nuovo punto**
 (command "point" nc)
(princ "              >>>    " )
(princ "fatto barge. cuntent?")
;***aggiornamento valore default in bp.dat
(SETQ pd (OPEN fil "w"))
 (princ nz pd)
(close pd)
); fine defun fpoint
************************************
questa invece non č mia!
***********************************
;;;   C:DDPTYPE - set point style and size dialogue.
;;;
;;;               Uses ddptype.dcl for the dialogue definition.  The
;;;               slide images are in acad.slb.
;;;
;;; ===================== load-time error checking ============================
;;;
  (defun ai_abort (app msg)
     (defun *error* (s)
        (if old_error (setq *error* old_error))
        (princ)
     )
     (if msg
       (alert (strcat " Application error: "
                      app
                      " \n\n  "
                      msg
                      "  \n"
              )
       )
     )
     (exit)
  )
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
;;; and then try to load it.
;;;
;;; If it can't be found or it can't be loaded, then abort the
;;; loading of this file immediately, preserving the (autoload)
;;; stub function.
  (cond
     (  (and ai_dcl (listp ai_dcl)))          ; it's already loaded.
     (  (not (findfile "ai_utils.lsp"))                     ; find it
        (ai_abort "DDPTYPE"
                  (strcat "Can't locate file AI_UTILS.LSP."
                          "\n Check support directory.")))
     (  (eq "failed" (load "ai_utils" "failed"))            ; load it
        (ai_abort "DDPTYPE" "Can't load file AI_UTILS.LSP"))
  )
  (if (not (ai_acadapp))               ; defined in AI_UTILS.LSP
      (ai_abort "DDPTYPE" nil)         ; a Nil <msg> supresses
  )                                    ; ai_abort's alert box dialog.
;;; ==================== end load-time operations ===========================
(defun ai_ptype_start ( / pt1 pt2 program)
  (setq ai_pts_lst '("0" "1" "2" "3" "4" "32" "33" "34" "35" "36"
                     "64" "65" "66" "67" "68" "96" "97" "98" "99" "100")
  )
  ;; Get program name
  (if (not (setq program (getvar "program")))
    (setq program "acad")
  )
  (foreach pt0 ai_pts_lst
    (setq pt1 (strcat "pdmode" pt0)
          pt2 (getvar "PDMODE")
    )
    (start_image pt1)
    (slide_image
      0 0
      (- (dimx_tile pt1) 1) (- (dimy_tile pt1) 1)
      (strcat program "(pt" pt0 ")")
    )
    (if (= pt2 (atoi pt0))
      (mode_tile pt1 2)
    )
    (end_image)
  )
)
(defun ai_ptype_set ()
  (ai_chk_pts nil)
  (if ai_pts_do
    (progn
      (if ai_pts0
        (setq ai_pts 0.0)
        (if (= (get_tile "pdsize_r") "1")
          (setq ai_pts (- 0.0 ai_pts))
        )
      )
      (setvar "PDSIZE" ai_pts)
      (setvar "PDMODE" (atoi (substr ai_ptmode 7 3)))
      (done_dialog 1)
    )
  )
)
(defun ai_chk_pts (pts0)
  (cond ((or (= ai_pts nil)
             (<= ai_pts 0.0)
         )
         (set_tile "error" "Invalid input.")
         (setq ai_pts_do nil)
  ; The next line was causing bug 80149.
         ;(mode_tile "pdsize_value" 2)
        )
        (T
         (set_tile "error" "")
         (setq ai_pts_do T)
         (if pts0
           (setq ai_pts0 nil)
         )
        )
  )
)
(defun ai_pdsize_r ()
  (if ai_pts
    (progn
      (setq ai_pt_do T ai_pts0 nil ai_ptunt 2)
      (set_tile "pdsize_label" "%")
      (set_tile "pdsize_value" (rtos (setq ai_pts (abs ai_pts)) ai_ptunt))
    )
  )
)
(defun ai_pdsize_a ()
  (if ai_pts
    (progn
      (setq ai_pt_do T ai_pts0 nil ai_ptunt (getvar "LUNITS"))
      (if (or (= ai_ptunt 3)
              (= ai_ptunt 4)
          )
        (set_tile "pdsize_label" "")
        (set_tile "pdsize_label" "Units")
      )
      (set_tile "pdsize_value" (rtos (setq ai_pts (abs ai_pts)) ai_ptunt))
    )
  )
)
(defun ai_ptype_main (/ globals)
  (ai_ptype_start)
  (mode_tile ai_ptmode 4)
  (if (<= ai_pts 0.0)
    (progn
      (set_tile "pdsize_r" "1")
      (set_tile "pdsize_label" "%")
      (setq ai_ptunt 2)
    )
    (progn
      (set_tile "pdsize_a" "1")
      (setq ai_ptunt (getvar "LUNITS"))
      (if (or (= ai_ptunt 3)
              (= ai_ptunt 4)
          )
        (set_tile "pdsize_label" "")
        (set_tile "pdsize_label" "Units")
      )
    )
  )
  (set_tile "pdsize_value" (rtos (setq ai_pts (abs ai_pts)) ai_ptunt))
  (foreach pd0 ai_pts_lst
    (action_tile (strcat "pdmode" pd0)
      "(mode_tile ai_ptmode 4)(setq ai_ptmode $key)(mode_tile ai_ptmode 4)"
    )
  )
  (action_tile "pdsize_value" "(setq ai_pts (distof $value)) (ai_chk_pts T)")
  (action_tile "pdsize_r" "(ai_pdsize_r)")
  (action_tile "pdsize_a" "(ai_pdsize_a)")
  (action_tile "accept" "(ai_ptype_set)")
  (action_tile "help" "(help \"\" \"ddptype\")")
  (start_dialog)
)
(defun c:ddptype (/ app dcl_id old_cmd ai_pts_do ai_ptmode ai_pts
                    ai_pts0 undo_init ai_ptunt)
  ;; Set up error function.
  (setq old_cmd (getvar "cmdecho")    ; save current setting of cmdecho
        old_error  *error*            ; save current error function
        *error* ai_error              ; new error function
  )
  (setvar "cmdecho" 0)
  (cond
     (  (not (ai_trans)))                        ; transparent OK
     (  (not (ai_acadapp)))                      ; ACADAPP.EXP xloaded?
     (  (not (setq dcl_id (ai_dcl "ddptype"))))  ; is .DCL file loaded?
     (T
        (if (/= 1 (logand (getvar "CMDACTIVE") 1)) (ai_undo_push))
        (ddptype_main)
        (if (/= 1 (logand (getvar "CMDACTIVE") 1)) (ai_undo_pop))
     )                          ; proceed!
  )
  (setq *error* old_error)
  (setvar "cmdecho" old_cmd)
  (princ)
)
(defun ddptype_main()
  (if (not (new_dialog "ddptype" dcl_id))
    (exit)
  )
  (setq ai_ptmode (strcat "pdmode" (itoa (getvar "PDMODE")))
        ai_pts (getvar "PDSIZE")
  )
  (setvar "CMDECHO" 0)
  (if (= ai_pts 0.0)
    (setq ai_pts -5.0 ai_pts0 T)
  )
  (ai_ptype_main)
  (princ)
)
(princ "  DDPTYPE loaded.  ")
(princ)

 netto confine tra motore, dati e interfaccia.  
Se ben ricordo autolisp si poteva interfacciare al database di autocad ( ed 
estrarre le "entità" ); ma normalmente bastava il comando "command" per 
invocare i comandi che normalmente si davano da console.

c'è modo di dara una mano per creare un CAD sotto linux?

 c'è modo di dara una mano per creare un CAD sotto linux?
https://ml.lugroma2.org/pipermail/netcad
(Anche l'indirizzo segnalato da Roal e` attivo ma non so per quanto.)
Scorri gli archivi, ho fatto il ``riassunto delle puntate precedenti''
proprio qualche giorno fa. :-)
Massimiliano

 c'è modo di dara una mano per creare un CAD sotto linux?
Inscriviti su
https://ml.lugroma2.org/mailman/listinfo/netcad

 (Anche l'indirizzo segnalato da Roal e` attivo ma non so per quanto.)
per sempre :))