| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, eine Pressemitteilung
|
Autor
|
Thema: Schwerpunkt (7673 mal gelesen)
|
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 27. Nov. 2001 11:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo alle zusammen. Gibt es eine Möglichkeit (Befehl) nur den Schwerpunkt einer Region anzeigen zu lassen? Ich arbeite mit dem Befehl "massprop". Doch da taucht auch sowas auf: Fläche: 11.72422 Umfang: 23.28986 Begrenzungsrahmen: X: 0.00000 -- 8.00000 Y: 0.00000 -- 4.35000 Schwerpunkt: X: 2.89909 Y: 1.74818 Trägheitsmomente: X: 42.50160 Y: 164.20655 Deviationsmoment: XY: 62.07087 Trägheitsradien: X: 1.90397 Y: 3.74243 Hauptträgheitsmomente und X-Y-Richtung um Schwerpunkt: I: 6.55203 entlang [0.99900 0.04480] J: 65.78695 entlang [-0.04480 0.99900] Ich muss jeweils den Flächenwert und den Schwerpunkt in y-Richtung in eine Excel-Datei kopieren, um weitere Berechnungen durchzuführen. Da kommt es öfter vor, dass ich mal den falsche Wert erwische. Hat jemand eine Idee, wie ich mir NUR den Flächenwert und den Schwerpunkt anzeigen lassen kann? Freu mich über jede Reaktion von Euch Danke KA
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 27. Nov. 2001 13:12 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
Hallo KA, ich habe mal ein eigenes Abfrageprogramm geschrieben. Dieses gibt nur noch die Werte aus Fläche X-Wert Y-Wert Die Dezimaltrennzeichen sind auch gleich die in Excel notwendigen Kommas (AutoCAD=Punkt) Anbei der Quellcode. Bei Fragen ... Grüße Holger (defun c:map (/ fdialit a zeile zli z) (setq fdialt (getvar "FILEDIA")) (command "_.massprop" (car (entsel))"") (command "_Y") (setvar "FILEDIA" 0) (command "c:\\zeichng1.mpr") (setvar "FILEDIA" fdialt) (setq a (open "c:\\zeichng1.mpr" "R")) (while (setq zeile (read-line a)) (setq zli (append zli (list zeile))) ) (close a) (vl-file-delete "c:\\zeichng1.mpr") (setq z -1 zli (apply 'append (mapcar '(lambda (X) (setq z (1+ z)) (if (or (= z 3) (= z 7) (= z 8) ) (list(last(cadr (read (strcat "'("(vl-string-translate " " "\t" (vl-string-trim " " X))")"))))) nil ) ) zli ) ) ) (mapcar '(lambda (X) (terpri) (princ (vl-string-translate "." "," (rtos X 2 4))) ) zli ) (textscr) (terpri) (princ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 27. Nov. 2001 13:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger Ich brauch nochmal Hilfe. Wir haben hier schon ein Lisp-Programm geschrieben. Ich weiss jetzt aber nicht, an welche Stelle ich Deinen Ablauf einfügen soll, damit nur die Fläche und der y-Wert angezeigt wird (x brauche ich nicht). Unser Lisp-Programm lautet: (defun c:reg() (command "_UNITS" 2 5 1 4 0 "n") (princ "\nRegion bestimmen:") (setq r (ssget)) (command "region" r "") (command "bks" "ob" pause) (command "masseig" pause "" "n") (command "bks" "welt") (command "ursprung" "L") (textscr) (princ) ) Ich hatte es eben an Stelle (command "masseig" pause "" "n") eingefügt, doch da kommt ne Fehlermeldung. Kannst Du mir nochmal helfen? Du scheinst ja voll die Ahnung davon zu haben. Danke schon mal Kathleen A.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 27. Nov. 2001 14:29 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
Hai Ich hab hier eins, das schreibt den schwerpkt in das Obj, dahin, wo er ist. Aber warte mal 'nen moment, dann strick ich's eben um, wie Du's brauchst. Gruß Martin (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (command "_UNDO" "_BACK") (setq *ERROR* MD_ERR) (princ) ) ;_ end of defun
(DEFUN koord (item / len pos zeich str) (setq len (strlen item)) (setq pos len) (SETQ zeich (SUBSTR item Pos 1)) (WHILE (/= zeich ":") (setq pos (1- pos)) (SETQ zeich (SUBSTR item Pos 1)) ) (setq pos (1+ pos)) (Setq str (atof (substr item pos (- len pos)))) );ende defun (defun fl ( e1 / ) (command "_.area" "_o") (command e1) );ende defun (defun c:md_fl (/ t_2 Ss) (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq ;;Marke für Zurück nach Abbruch setzen (command "_UNDO" "_MARK") (setq el (entlast)) (setq as (ssadd)) (setq p1 (getpoint "\nin die zu berechnende Fläche klicken")) (command "_.boundary" "o" "i" "j" "o" "r" "x" p1) (if (>(sslength (ssget "X"))1000) (command "J" "") (command) ) (setq e1 (entnext el)) (fl e1) (while e1 (ssadd e1 as) (setq e1 (entnext e1)) ) (setq kont (ssname as 0)) (ssdel kont as) (command "_massprop" "_l" "" "_Y" "test") (command "_.erase" "_l" "") (setq mprdat (open "test.mpr" "r")) (repeat 7 (read-line mprdat) (princ) ) (setq x (koord (strcase (read-line mprdat)))) (setq y (koord (strcase (read-line mprdat)))) (close mprdat) (setq p2 (list x y)) ;(command "_ucs" "u" p2) ;(command "_massprop" "_l" "" "_n") (setq deldat (strcat "del test.mpr")) (command "_shell" deldat) ;(command "_undo" "_BACK") (command "_text" p2 "0.35" "0" (strcat (rtos (getvar "area") 2 2)" qm")) (princ) ) ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 27. Nov. 2001 15:23 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
Soo jetzt nochmal für Dich. Die Werte werden direkt in eine Datei (C:\koord.csv) geschrieben, die Du in Excel Öffnen kannst. (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (command "_UNDO" "_BACK") (close schreibdat) (setq *ERROR* MD_ERR) (princ) ) ;_ end of defun (DEFUN koord (item / len pos zeich str) (setq len (strlen item)) (setq pos len) (SETQ zeich (SUBSTR item Pos 1)) (WHILE (/= zeich ":") (setq pos (1- pos)) (SETQ zeich (SUBSTR item Pos 1)) ) (setq pos (1+ pos)) (Setq str (atof (substr item pos (- len pos)))) );ende defun (defun fl ( e1 / ) (command "_.area" "_o") (command e1) );ende defun (defun c:md_fl (/ t_2 Ss) (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq ;;Marke für Zurück nach Abbruch setzen (command "_UNDO" "_MARK") (setq el (entlast)) (setq as (ssadd)) (setq p1 (getpoint "\nin die zu berechnende Fläche klicken")) (command "_.boundary" "o" "i" "j" "o" "r" "x" p1) (if (>(sslength (ssget "X"))1000) (command "J" "") (command "") ) ;(setq e1 (ssname as 0)) (if (= (entnext el) NIL) (setq e1 el) (setq e1 (entnext el)) ) (fl e1) (while e1 (ssadd e1 as) (setq e1 (entnext e1)) ) (setq kont (ssname as 0)) (ssdel kont as) (command "_massprop" "_l" "" "_Y" "test") (command "_.erase" "_l" "") (setq mprdat (open "test.mpr" "r")) (repeat 7 (read-line mprdat) (princ) ) (setq x (koord (strcase (read-line mprdat)))) (setq y (koord (strcase (read-line mprdat)))) (close mprdat) (setq p2 (list x y)) (setq deldat (strcat "del test.mpr")) (command "_shell" deldat) (setq schreibdat (open "C:\\Koord.csv" "a")) (setq reinschreib (strcat "Fläche: " ";" (rtos (getvar "area") 2 2) ";" " qm" "\nSchwerpunkt in Y: " ";" (rtos y) "\n" ) ) (write-line reinschreib schreibdat) (close schreibdat) (princ) ) ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 28. Nov. 2001 11:42 <-- editieren / zitieren --> Unities abgeben:         
Danke für die Hilfe, aber damit komm ich nicht klar. Ich schreib jetzt nochmal auf, was ich eigentlich genau will. Unser List-Programmm lautet: (defun c:reg() (command "_UNITS" 2 5 1 4 0 "n") (princ "\nRegion bestimmen:") (setq r (ssget)) (command "region" r "") (command "bks" "ob" pause) (command "masseig" pause "" "n") (command "bks" "welt") (command "ursprung" "L") (textscr) (princ) ) __________________________________________________________ Also: Die Dezimalstellen werden zuerst auf 5 erhöht. Dann wähl ich meine Linien aus (Objekte), um eine Region zu bilden. Von dieser Region sollen die Fläche und der Schwerpunkt in Y-Richtung bestimmt werden. Dafür setz ich mein BKS auf die unterste horizontale Linie (wählen), damit es nicht von 0,0 ausgeht. Mit "massprop" werden ja nun die Werte ermittelt. Das BKS wird danach wieder auf Welt (0,0) gesetzt und die Region wieder aufgelöst. (Ursprung) Jetzt soll automatisch das AutoCAD-Textfenster geöffnet werden, damit ich meine Werte in Excel kopieren kann. Das klappt auch alles reibungslos, doch wie schon gesagt tauchen im Fenster mehrere Informationen auf, doch ich brauch nur die Fläche und die Schwerpunktkoordinate in Y-Richtung. Es soll auch keine eigene Datei erzeugt werden, ich möchte mit dem Textfenster arbeiten, es soll einfach nur die Fläche und der Y-Wert zu sehen sein. Ist das vielleicht doch möglich? Kann ich unser Lisp-Program umstricken? Es soll idiotensicher sein, da dann mehrere Kollegen damit arbeiten sollen. danke schon mal KA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 28. Nov. 2001 12:46 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
Soo ich hoffe das ist das was Du willst. Prbier's ma aus Gruß CADwiesel www.CADwiedel.de (defun c:reg() (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq ;;Marke für Zurück nach Abbruch setzen (command "_UNDO" "_MARK") (command "_UNITS" 2 5 1 4 0 "n") (princ "\nRegion bestimmen:") (setq r (ssget)) (command "region" r "") (command "bks" "ob" pause) (command "_massprop" "L" "" "_Y" "test") (command "_.explode" (entlast)) (setq mprdat (open "test.mpr" "r")) (repeat 7 (read-line mprdat) (princ) ) (setq x (koord (strcase (read-line mprdat)))) (setq y (koord (strcase (read-line mprdat)))) (close mprdat) (setq p2 (list x y)) (setq deldat (strcat "del test.mpr")) (command "_shell" deldat) ;(command "masseig" (entlast) "" "n") (command "bks" "welt") ;(command "ursprung" "L") (setq reinschreib (strcat "Fläche: " (rtos (getvar "area") 2 5) "\nSchwerpunkt in Y: " (rtos y) "\n" ) ) (prompt reinschreib) (textscr) (princ) ) (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (command "_UNDO" "_BACK") (close schreibdat) (setq *ERROR* MD_ERR) (princ) ) ;_ end of defun
------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 28. Nov. 2001 13:05 <-- editieren / zitieren --> Unities abgeben:         
Hm, leider funktioniert es nicht. Ich glaub ich bin zu dämlich. Nach anklicken über eigenes Tool [^C^C(load "testen.lsp");reg] erscheint: Kurzversion Befehlszeile _________________________________________________________________ Befehl: ; Fehler: Es ist ein Fehler innerhalb der *error*-Funktion aufgetreten.Fehlerhafter Argumenttyp: streamp nil _________________________________________________________________ Lange Version aus Textfenster: __________________________________- Befehl: (load "testen.lsp") M:FEHLER
Befehl: reg _UNDO Anzahl der rückgängig zu machenden Operationen eingeben oder [Auto/Steuern/Beginn/Ende/Markierung/Rück] <1>: _MARK Befehl: _UNITS Einheitensysteme: (Beispiele) 1. Wissenschaftlich 1.55E+01 2. Dezimal 15.50 3. Engineering 1'-3.50" 4. Architectural 1'-3 1/2" 5. Bruch 15 1/2 Mit Ausnahme von Engineering und Architectural können diese Formate mit allen Grundmaßeinheiten verwendet werden. Zum Beispiel eignet sich der Dezimalmodus gut für metrische und britische Dezimaleinheiten. Auswahl eingeben, 1 bis 5 <2>: 2 Anzahl Dezimalstellen eingeben (0 bis 8) <5>: 5 Winkelmaßeinheiten: (Beispiele) 1. Dezimalgrad 45.0000 2. Grad/Minuten/Sekunden 45d0'0" 3. Grad 50.0000g 4. Bogenmaß 0.7854r 5. Feldmaß N 45d0'0" E Auswahl eingeben, 1 bis 5 <1>: 1 Anzahl Dezimalstellen für anzuzeigenden Winkel eingeben (0 bis 8) <4>: 4 Winkelrichtung 0.0000: Osten 3 Uhr = 0.0000 Norden 12 Uhr = 90.0000 Westen 9 Uhr = 180.0000 Süden 6 Uhr = 270.0000 Winkelrichtung eingeben 0 <0>: 0 Winkel im Uhrzeigersinn messen? [Ja/Nein] <N> n Befehl: Region bestimmen: Objekte wählen: Entgegengesetzte Ecke angeben: 6 gefunden Objekte wählen: region Objekte wählen: 6 gefunden Objekte wählen: 1 Kontur extrahiert. 1 Region erstellt.
Befehl: bks Aktueller BKS-Name: *WELT* Option eingeben [Neu/Schieben/orthoGonal/VOrher/HOlen/SPeichern/Löschen/Anwenden/?/Welt] <Welt>: ob Objekt für BKS-Ausrichtung wählen: Befehl: _massprop Objekte wählen: L 1 gefunden Objekte wählen: ---------------- REGIONEN ---------------- Fläche: 24.31018 Umfang: 26.09230 Begrenzungsrahmen: X: 0.00000 -- 11.00000 Y: 0.00000 -- 2.29500 Schwerpunkt: X: 5.30112 Y: 1.16654 Trägheitsmomente: X: 43.76415 Y: 911.70687 Deviationsmoment: XY: 152.79479 Trägheitsradien: X: 1.34173 Y: 6.12398 Hauptträgheitsmomente und X-Y-Richtung um Schwerpunkt: I: 10.65459 entlang [0.99994 0.01130] J: 228.57444 entlang [-0.01130 0.99994] Analyse in Datei schreiben? [Ja/Nein] <N>: _Y Dateinamen eingeben <H:\F_Produkte\Fastriv\Berechnungen-OPs\Range\ø4.8\FSC 48 85 002Z11.mpr>: test Befehl: _.explode Objekt wählen: Befehl: "M:fehler Fehlerhafter Argumenttyp: FILE nil" _UNDO Anzahl der rückgängig zu machenden Operationen eingeben oder [Auto/Steuern/Beginn/Ende/Markierung/Rück] <1>: _BACK .URSPRUNG MASSEIG BKS REGION UNITS Markierung gefunden Befehl: ; Fehler: Es ist ein Fehler innerhalb der *error*-Funktion aufgetreten.Fehlerhafter Argumenttyp: streamp nil ______________________________________________________ Ich weiß nicht mehr weiter KA
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 28. Nov. 2001 14:06 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
OK-sorry kleiner oops. versuch's nochmal Gruß CADwiesel (defun c:reg() (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq ;;Marke für Zurück nach Abbruch setzen (setvar "cmdecho" 0) (command "_UNDO" "_MARK") (command "_UNITS" 2 5 1 4 0 "n") (princ "\nRegion bestimmen:") (setq r (ssget)) (command "region" r "") (command "bks" "ob" pause) (command "_massprop" "L" "" "_Y" "test") (command "_.explode" "L") (setq mprdat (open "test.mpr" "r")) (repeat 7 (read-line mprdat) (princ) ) (setq x (koord (strcase (read-line mprdat)))) (setq y (koord (strcase (read-line mprdat)))) (close mprdat) (setq p2 (list x y)) (setq deldat (strcat "del test.mpr")) (command "_shell" deldat) ;(command "masseig" (entlast) "" "n") (command "bks" "welt") ;(command "ursprung" "L") (setq reinschreib (strcat "Fläche: " (rtos (getvar "area") 2 5) "\nSchwerpunkt in Y: " (rtos y) "\n" ) ) (prompt reinschreib) (textscr) (princ) ) (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (command "_UNDO" "_BACK") (setq *ERROR* MD_ERR) (princ) ) ;_ end of defun ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 28. Nov. 2001 14:30 <-- editieren / zitieren --> Unities abgeben:         
Ich will Dich ja nicht ärgern, aber jetzt taucht unter anderem das auf: "M:fehler Fehlerhafter Argumenttyp: FILE nil" Massprop führt er aber noch aus, ich kann aber vorher kein bks wählen/ versetzen. Da Du Dich auch nicht tagelang damit beschäftigen sollst, mach ich es halt auf die alte Weise. Das Dumme ist nur, dass ich sowas gerade 8 Stunden täglich durchführen muss. Oder hast Du doch noch ne Idee? Liebe Grüße KA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 04. Dez. 2001 07:07 <-- editieren / zitieren --> Unities abgeben:          Nur für KA76
|

| |
KA76 Mitglied Technische Zeichnerin (bald Maschinenbau-Technikerin [Abendschule] )

 Beiträge: 80 Registriert: 31.10.2001
|
erstellt am: 05. Dez. 2001 09:05 <-- editieren / zitieren --> Unities abgeben:         
Für alle, die mir geholfen haben, oder sich für das Thema interessieren.;-) Mein ACAD-Händler hat jetzt nach 2 Fehlversuchen ein Lisp-Programm entwickelt, das ohne Fehlermeldung funktioniert. Ich hab es als Anhang dabei. Danke nochmal für Eure Bemühungen KA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |