Μετάβαση στο περιεχόμενο

AutoCad - 07. AutoLISP. Κώδικες προγραμματάκια, οδηγίες σύνταξης κώδικα


vournaz

Recommended Posts

Για καθείστε λιγάκι . Όλο την AutoLISP παινεύετε . Πείτε τίποτα και για την αδελφή της την DCL ! ! ! ! ! ! !

 

 

H Autolisp δουλεύει και χωρίς dcl. Η dcl απο μόνη της δεν κάνει τίποτε.

Η Αutolisp διαχειρίζεται ολες τις εντολές του Autocad , η dcl οχι.

Η dcl ειναι κατάλληλη για μάσκες εισαγωγής δεδομένων , διαχείρισης αρχείων κ.λ.π. , κάνει δηλαδή ενα πρόγραμμα πιο "μουράτο" αλλά το πρόγραμμα ειναι γραμμένο σε Autolisp.

Με λίγα λόγια " Εν αρχή ην η Autolisp " .

 

Νομίζω πολύ την επαίνεσα την .... DCL.

Link to comment
Share on other sites

Ενα πακέτο με lisp-routines από γνωστο site μπορειτε να το παρετε απο εδώ.Υπαρχουν μεσα html αρχεια με συντομες περιγραφες για το καθενα (ΔΕΝ περιεχονται ολα οσα ειναι στα html).

>[url]http://rapidshare.com/files/196278058/lisp.rar[/url]

Εαν το αξιολογησετε θετικά, να το βαλω στα downloads (ουτως ή αλλως ειναι free)

Link to comment
Share on other sites

xristospanisis βλέπω επεσες με τα μούτρα και ψαρεύεις lisp_ακια απο το internet .

Πολλές φορές ομως χρειάζονται τροποποίηση για να τα φέρεις στα μέτρα σου.

Link to comment
Share on other sites

Εχεις δικιο.Εχω και κατι σημειωσεις απο τη σχολη (ΤΑΤΜ) και το παλευω λιγο.

Να ρωτησω:

Βρηκα αυτο το lispακι και θελω να βαλω τρια (3) δεκαδικα στο αποτελεσμα που βγαζει (τωρα ειναι μεχρι 2).Μπορει κανεις να βοηθησει;

Επιλεγεις ενα σημειο και σου βγαζει x y σε text.

>(defun c:ordi(/ fPt oldEcho dFlc dDec *error*) 

 (defun *error*(msg) 
     (setvar "CMDECHO" oldEcho) 
   (princ) 
   ); end of *error* 

 (princ(strcat "DIMSCALE="(rtos
		     (getvar "DIMSCALE"))" "
	"DIMLFAC="(rtos
		    (setq dFlc
		     (getvar "DIMLFAC")))" "
	"DIMDEC="(rtos
		   (setq dDec
		    (getvar "DIMDEC")))" "
 ); end strcat
); end princ	
 (setq oldEcho(getvar "CMDECHO")) 
 (setvar "CMDECHO" 0)
 (princ "\n<<< Specify point or Esc to Quit >>> ")
 (while T
 (if 
   (setq fPt(getpoint)) 
   (progn 
     (command "_.dimordinate" fPt "_t" 
         (strcat 
      "X=" (rtos(* dFlc(car fPt))2 dDec) 
      "\\X" 
      "Y=" (rtos(* dFlc(cadr fPt))2 dDec) 
      ); end strcat 
         pause 
         ); end command 
     ); end progn 
   ); end if
   ); end while
   (setvar "CMDECHO" oldEcho) 
 (princ) 
 ); end of c:ordi

(princ "\nX,Y coordinates labeling. Type ORDI to quit. ")

Link to comment
Share on other sites

(rtos number [mode [precision]])

το Mode μπορεί να είναι ένα απο τα εξής:

1 Scientific

2 Decimal

3 Engineering (feet and decimal inches)

4 Architectural (feet and fractional inches)

5 Fractional

 

Το dDec (precision) απο ότι βλέπω το ορίζει στην γραμμή 14, δοκίμασε να βάλεις το παρακάτω στην γραμμή πάνω απο το (setq oldEcho(getvar "CMDECHO"))...

>(setq dDec 3)

μπορεί να λειτουργήσει...

Link to comment
Share on other sites

xristospanisis σου στέλνω την τροποποίηση:

 

(defun c:ordi (/ fPt oldEcho dFlc dDec *error*)

 

(defun *error*(msg)

(setvar "CMDECHO" oldEcho)

(princ)

); end of *error*

 

(princ(strcat "DIMSCALE="(rtos

(getvar "DIMSCALE"))" "

"DIMLFAC="(rtos

(setq dFlc

(getvar "DIMLFAC")))" "

"DIMDEC="(rtos

(setq dDec

(getvar "DIMDEC")))" "

); end strcat

); end princ

 

(setq oldDimDec (getvar "DIMDEC"))

 

(initget (+ 1 2 4))

(setq dekadika (getint "\nPosa Dekadika:"))

(setq dDec dekadika)

; (setq dDec 2) ;; Αν θές μονίμως 2 δεκαδικά σβήνεις τις 3 προηγούμενες γραμμές

;; και ενεργοποιείς αυτήν

 

(setq oldEcho(getvar "CMDECHO"))

(setvar "CMDECHO" 0)

(princ "\n<<< Specify point or Esc to Quit >>> ")

(while T

(if

(setq fPt(getpoint))

(progn

(command "_.dimordinate" fPt "_t"

(strcat

"X=" (rtos(* dFlc(car fPt))2 dDec)

"\\X"

"Y=" (rtos(* dFlc(cadr fPt))2 dDec)

); end strcat

pause

); end command

); end progn

); end if

); end while

(setvar "CMDECHO" oldEcho)

(setvar "DIMDEC" oldDimDec)

(princ)

); end of c:ordi

 

(princ "\nX,Y coordinates labeling. Type ORDI to quit. ")

Link to comment
Share on other sites

Μπράβο maik! :) Μόνο άν γίνεται να χρησιμοποιούμε τα σωστά BBcode tags.

Στην περίπτωση του κώδικα είναι το code, όπως ακριβώς χρησιμοποιείτε το b για τα bold ;)

Link to comment
Share on other sites

Μπράβο maik! :) Μόνο άν γίνεται να χρησιμοποιούμε τα σωστά BBcode tags.

Στην περίπτωση του κώδικα είναι το code, όπως ακριβώς χρησιμοποιείτε το b για τα bold ;)

 

Συγνώμη. Κατά λάθος μπήκαν εκεί αυτά. Ηθελα να βάλω bold

Link to comment
Share on other sites

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο

Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο

Δημιουργία λογαριασμού

Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!

Εγγραφή νέου λογαριασμού

Σύνδεση

Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Create New...

Σημαντικό

Χρησιμοποιούμε cookies για να βελτιώνουμε το περιεχόμενο του website μας. Μπορείτε να τροποποιήσετε τις ρυθμίσεις των cookie, ή να δώσετε τη συγκατάθεσή σας για την χρήση τους.