Μετάβαση στο περιεχόμενο
Newsletter: Ημερήσια τεχνική ενημέρωση από το Michanikos.gr ×

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


vournaz

Recommended Posts

Κοίταξε . Για τυχαίο τετράγωνο , θέλεις να κάνεις κλίκ πάνω στην περίμετρό του και το Lisp-άκι να σου γράφει την ανάλυση των πράξεων π.χ. 2.30 χ 2.30 = 5.29 μ2 ; Με τι τρόπο θα κάνεις τους χωρισμούς τυχαίας Polyline σε τετράγωνα ;

 

 

Είναι απλούστερο αυτό ; Πως το σκέφτεσαι ακριβώς ;

Link to comment
Share on other sites

απλα σκεφτομουν ως το πρωτο βημα αυτο :

 

τα σχηματα τα φτιαχνω εγω χειροκινητα (βλεπω τι με βολευει και φτιαχνω τετραγωνα τριγωνα τραπεζια(πολλα τραπεζια) ημικυκλια κλπ)

και μετα

στο παραλληλογραμμο ή τραπεζιο και με το λισπακι μου το επιλεγω και μου πεταει διπλα την πραξη

 

αυτη ηταν η πρωτη απλοϊκή σκεψη

απο εκει και περα καθε ιδεα δεκτη

Link to comment
Share on other sites

Τώρα έγινες περισσότερο κατανοητός. Το τετράγωνο είναι μια πολύ ειδική περίπτωση. Θα πρέπει ανάλογα που κάνεις κλίκ να καταλαβαίνει το lipsp-άκι το είδος του σχήματος ή εναλλακτικά να υπάρχουν 4-5 υποπρογράμματα για διαφορετικούς τύπους σχημάτων και αφού επιλεγεί το βασικό σχήμα να εμφανίζει κάπου κοντά τις πράξεις για το εμβαδό. Επίσης , κάθε βασικός τύπος σχήματος (τρίγωνο , παραλληλόγραμμο κ.λ.π.) θα πρέπει να είναι κλειστή polyline . Σωστά ;

 

Θα επανέλθω αργότερα απόψε με συγκεκριμένο παράδειγμα. Πολύ ... φιλολογία έπεσε ;)

Link to comment
Share on other sites

σωστα θα πρεπει να το βρισκει το σχημα

 

 

μια αλλη ιδεα που ειχα ηταν αν αντι πολυλινε ισως να διευκολυνε καλυτερα hatch?

δηλαδη εχω το σχημα απο πολυλινε το γεμιζω με Hatch και μετα απο εκει βγαζω πραξεις

Link to comment
Share on other sites

To hatch δεν μας δίνει γεωμετρικές πληροφορίες για την περιοχή που διαγραμμίζει. Ενώ κάποιο κλειστό γεωμετρικό σχήμα (δοσμένο ως Polyline) μας επιστρέφει τέτοια πληροφορία. Το ίδιο ισχύει και για κυκλικό τόξο. Είναι οντότητα που μας δίνει αποτέλεσμα.

Link to comment
Share on other sites

Επανέρχομαι με μια λύση η οποία βοηθά σε περίπτωση επιλογής τριγώνων . Η γενική μορφή τετραπλεύρου ήταν δύσκολη για διερεύνηση. Η υλοποίηση τελικά έγινε με Autocad VBA και όχι με Autolisp.

 

Τα τρίγωνα είναι ορισμένα ως Polyline . Επιλέγοντας ένα από αυτά , μας ζητά να υποδείξουμε το σημείο που θα γραφτούν τα μήκη των πλευρών που υπολογίστηκαν καθώς και το εμβαδό του τριγώνου με βάση τον τύπο του Ήρωνα.

 

Η διαδικασία είναι η εξής :

 

1. Κατεβάζουμε το συνημμένο.

2. Αποσυμπιέζουμε τα περιεχόμενά του σε κάποιο φάκελλο.

3. Προκύπτουν τα αρχεία AreaShapes.dvb (το υποπρόγραμμα υπολογισμού και γραφής των αποτελεσμάτων) καθώς και το AreaShapes.dwg που περιέχει τρία τρίγωνα ως Polylines και θα χρησιμοποιηθεί ως πειραματισμό.

4. Φορτώνουμε στο Autocad το αρχείο dwg και μετά από το menu Tools -> Macros -> VBA Manager , φορτώνουμε και το AreaShapes.DVB το οποίο "τρέχουμε" με Alt-F8 και απλά επιλέγουμε τυχαίο τρίγωνο και στη συνέχεια κάποιο σημείο που θα γράψει τα μήκη των πλευρών του και το εμβαδό του.

 

Η εικόνα που επισυνάπτεται παρουσιάζει κάποια ενδεικτικά αποτελέσματα με βάση τα τυχαία τρίγωνα που επιλέχτηκαν.

 

Η διαδικασία είναι χρονοβόρα για αρκετά τρίγωνα. Μελετάται αυτοματοποίηση αλλά δεν μπορώ να υποσχεθώ χρονικά το πότε.

AreaShapes.zip

post-342-131887254707_thumb.gif

  • Upvote 1
Link to comment
Share on other sites

@gvarth πολυ καλο, μπραβο σου και σε ευχαριστω για την προσπαθεια

 

απο οσο ειδα ειναι σωστο

σπας καθε σχημα σε τριγωνα και υπολογιζεις τα εμβαδα

αλλα ειναι λιγο δυσχρηστο

 

σκεφτομουν το ΣΚ στο σπιτι εκτος δουλειας (δεν ειχα δει ακομα το ποστ σου)

-offtopic :τι κακο ειναι οι μηχανικοι να σκεφτονται παντου την δουλεια τους-

 

μηπως θα επρεπε να ανακατεφθει και το excell στην υποθεση

 

σκεφτηκα ενα πινακα με τους τυπους εμβαδων απο τα πιο διαδεδομενα σχηματα (τριγωνο, τραπεζιο, ορθογωνιο παραλληλογραμο-περιλαμβανει και τα τετραγωνα-, παραλληλογραμμα, κυκλο, κυκλικο τομεα, ελλειψη και το μπροστα τμημα του κυκλικου τομεα -δεν ξερω πως λεγεται αλλα εννοω αυτο : http://www.efunda.com/math/areas/CircularSegmentGen.cfm - )

 

και με καποια συνδεση με το autocad να λες οτι θελω να βρω το εμβαδον του κυκλου να επιλεγεις εσυ τον κυκλο (που ξερεις οτι ειναι κυκλος) και αυτο να αναγνωριζει μονο τα στοιχεια που χρειαζεται για να κανει την πραξη και να την γραφει

 

 

-ανακατεβω το excel γιατι εκει θα ορισω τους τυπους του εμβαδου-

 

στην περιπτωση που επιλεξεις τραπεζιο αλλα αυτο ειναι τριγωνο τοτε δεν κανει τιποτα

Link to comment
Share on other sites

Καλησπέρα.

 

Ενδιαφέρουσα η σκέψη σου.

Κατά τη γνώμη μου , και με αυτό που έφτιαξα και με αυτό που προτείνεις , αν δεν υπάρχει αντιστοίχιση σχήματος - υπολογισμών , ο ελεγκτής , δύσκολο να βγάλει άκρη.

 

Την σύνδεση που προτείνεις την είχα σκεφτεί κάποια στιγμή σε άλλη εφαρμογή αλλά "κόλλησα" στην οπτική αντιστοίχιση.

 

Εκείνο που θα θεωρείτο βέλτιστο - και οικονομία χρόνου για τον μηχανικό που το συντάσσει - θα ήταν η "σάρωση" του σχεδίου και ανάλογα με το σχήμα , ο αναλυτικός υπολογισμός του εμβαδού ανάλογα με το τι ανιχνεύθηκε και η σήμανση - αντιστοίχιση αυτού που ανιχνεύθηκε με τις αναλυτικές πράξεις υπολογισμού του εμβαδού.

 

Αν ο υπολογισμός γίνεται με το κλίκ της επιλογής (όπως η λύση που πρότεινα) , πάλι χάνεται χρόνος και πάλι όμως ο ελεγκτής θα πρέπει να έχει οπτική αντιστοίχιση για το ποιού σχήματος το εμβαδό υπολογίζεις κάθε φορά. Και στην προκειμένη περίπτωση το διακρίνει.

 

Ανεξάρτητα με τη μεθοδολογία προσέγγισης και υπολογισμού του εμβαδού (εσωτερικά στο Autocad ή εξωτερικά στο Excel) , η μεθοδολογία μαζικής "σάρωσης" δείχνει να πάσχει διότι δεν παρέχει πληροφόρηση που αφορά το συγκεκριμένο σχήμα κάθε φορά ώστε να γίνεται άμεση οπτική συσχέτιση.

 

Να το ξαναδώ και επανερχόμαστε. Θέλει μελέτη και χρόνο ...

 

 

Edit : Αν δεν απασχολεί η οπτική αντιστοίχιση (κάτι που δεν το νομίζω) , είναι σχετικά εύκολο να σαρωθούν όλα τα τρίγωνα ή όλα τα παραλληλόγραμμα ή όλοι οι κύκλοι με μία κίνηση , χωρίς δική μας παρέμβαση, και τα μήκη πλευρών που διαβάστηκαν να "πάνε" να δημιουργήσουν τις πράξεις για τον υπολογισμό του εμβαδού. Χωρίς όμως οπτική αντιστοίχιση , ΔΕΝ θα χαθεί η "μπάλλα" ;

Link to comment
Share on other sites

Edit : Αν δεν απασχολεί η οπτική αντιστοίχιση (κάτι που δεν το νομίζω) , είναι σχετικά εύκολο να σαρωθούν όλα τα τρίγωνα ή όλα τα παραλληλόγραμμα ή όλοι οι κύκλοι με μία κίνηση , χωρίς δική μας παρέμβαση, και τα μήκη πλευρών που διαβάστηκαν να "πάνε" να δημιουργήσουν τις πράξεις για τον υπολογισμό του εμβαδού. Χωρίς όμως οπτική αντιστοίχιση , ΔΕΝ θα χαθεί η "μπάλλα" ;

 

 

και βεβαια με ενδιαφερει αυτο

 

αλλα και σκεφτηκα το εξης

αφου αυτο ειναι ευκολο τοτε μπορει να γινει το εξης

 

γινεται ολα οσα περιγραφεις παραπανω και μετα να του δώσουμε μια εντολη που δίπλα να δημιουργει τα σχηματα διαβασαν

 

και μετα απλα αριθμεις κατα σειρα τα νεα σχηματα με τα προηγουμενα στο σχημα

 

πως σου ακουγεται αυτο??

Link to comment
Share on other sites

Θέλει μελέτη.

 

Αρχικά σκέφτηκα οι κύκλοι και τα τόξα να είναι σε δικό τους layer . Το ίδιο και τα παραλληλόγραμμα , ομοίως και τα τρίγωνα ώστε η "σάρωση" του σχεδίου να γίνεται σχετικά εύκολα.

 

γινεται ολα οσα περιγραφεις παραπανω και μετα να του δώσουμε μια εντολη που δίπλα να δημιουργει τα σχηματα διαβασαν

 

και μετα απλα αριθμεις κατα σειρα τα νεα σχηματα με τα προηγουμενα στο σχημα

 

 

Άσε να το δω στην πράξη ...

Link to comment
Share on other sites

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

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

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

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

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

Σύνδεση

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

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

Σημαντικό

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