Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD Architecture ACA (ADT)
  massengruppe

  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Thema geschlossen  Thema geschlossen!
Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  massengruppe (431 mal gelesen)
fca_mi2
Mitglied
Bauingenieur


Sehen Sie sich das Profil von fca_mi2 an!   Senden Sie eine Private Message an fca_mi2  Schreiben Sie einen Gästebucheintrag für fca_mi2

Beiträge: 505
Registriert: 10.01.2003

Win XP<P>Architecture 2011
SofiCad 18.1

erstellt am: 02. Jan. 2007 09:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

mit nachfolgendem progrämmchen (befehl: "eee") erstelle ich einen satteldachbinder. wenn ich diesen zu einer massengruppe zusammenfassen möchte, verschwinden die neuen objekte und vom binder ist nichts mehr zu sehen. was mache ich falsch ?

ich habe diesen beitrag versehentlich auch in das lisp-forum gesetzt, sorry !

(defun fc_adt_winkel (ep zp / dx dy dz alpha beta epx epy epz zpx zpy zpz lxy lxz ld)
 
  (setq epx (nth 0 ep))
  (setq epy (nth 1 ep))
  (setq epz (nth 2 ep))


  (setq zpx (nth 0 zp))
  (setq zpy (nth 1 zp))
  (setq zpz (nth 2 zp))


  (setq dx (- zpx epx))
  (setq dy (- zpy epy))
  (setq dz (- zpz epz))

  (setq lxy (expt (+ (* dx dx) (* dy dy)) 0.50))
  (setq lxz (expt (+ (* dx dx) (* dz dz)) 0.50))
  (setq ld (expt (+ (* lxy lxy) (* dz dz)) 0.50))

  ;alpha
  (setq alpha (atan (abs dy) (abs dx)))

  (if (and (>= dx 0.0) (> dy 0))
    (princ)
  )
  (if (and (< dx 0.0) (>= dy 0))
    (setq alpha (- (* 1.0 3.1415927) alpha))
  )
  (if (and (<= dx 0.0) (< dy 0))
    (setq alpha (+ (* 1.0 3.1415927) alpha))
  )
  (if (and (> dx 0.0) (<= dy 0))
    (setq alpha (- (* 2.0 3.1415927) alpha))
  )
  (if (= dy 0.0)
    (setq alpha 0.0)
  )

  ;beta
  (setq beta (atan (abs dz) (abs dx)))

  (if (and (>= dx 0.0) (> dz 0))
    (princ)
  )
  (if (and (< dx 0.0) (>= dz 0))
    (setq beta (- (* 1.0 3.1415927) beta))
  )
  (if (and (<= dx 0.0) (< dz 0))
    (setq beta (+ (* 1.0 3.1415927) beta))
  )
  (if (and (> dx 0.0) (<= dz 0))
    (setq beta (- (* 2.0 3.1415927) beta))
  )
  (if (= dz 0.0)
    (setq beta 0.0)
  )
  ;gamma
  (setq gamma (atan (abs dz) (abs lxy)))

  (if (and (>= lxy 0.0) (> dz 0))
    (princ)
  )
  (if (and (< lxy 0.0) (>= dz 0))
    (setq gamma (- (* 1.0 3.1415927) gamma))
  )
  (if (and (<= lxy 0.0) (< dz 0))
    (setq gamma (+ (* 1.0 3.1415927) gamma))
  )
  (if (and (> lxy 0.0) (<= dz 0))
    (setq gamma (- (* 2.0 3.1415927) gamma))
  )
  (if (= dz 0.0)
    (setq gamma 0.0)
  )
  (list alpha (* alpha (/ 180 3.1415927)) beta (* beta (/ 180 3.1415927)) gamma (* gamma (/ 180 3.1415927)) lxy lxz ld)
)

(defun fc_adt_plinie (polypunktliste layername farbnr gc70 / n tmpliste lelement)
  (setq lelement (entlast))
  (setq tmpliste (list
'(0 . "POLYLINE")
(cons 8 layername)
(cons 62 farbnr)
'(66 . 1)
        (cons 70 gc70)
))
  (entmake tmpliste)


  (foreach n polypunktliste
  (setq tmpliste (List
    '(0 . "VERTEX")
    ))
    (setq tmpliste (append tmpliste (list (cons 10 (trans n 1 0)))))
    (setq tmpliste (append tmpliste (list '(70  . 32))))
    (entmake tmpliste)
    );foreach

  (setq tmpliste (list
    '(0 . "SEQEND")
    ))
  (entmake tmpliste)
  (princ)
  (if (/= (entlast) lelement)
    (entlast)
    (nil)
    );if
)

(defun fc_flaeche_an_pfad_ausrichten2 (querschn ep zp s / winkelliste ep epx epy epz zp zpx zpy zpz pliste)

  (setq epx (nth 0 ep))
  (setq epy (nth 1 ep))
  (setq epz (nth 2 ep))
 
  (setq zpx (nth 0 zp))
  (setq zpy (nth 1 zp))
  (setq zpz (nth 2 zp))

  (setq winkelliste (fc_adt_winkel ep zp))

  (setq pliste nil)
  (setq pliste (list ep))
  (foreach n querschn
    (if (= s 0)
      (setq pliste (append pliste
(list
  (list (+ epx (* (cos (+ (nth 0 winkelliste) 1.57079635)) (nth 0 n)) (* (cos (+ (nth 2 winkelliste) 1.57079635)) (nth 1 n)))
        (+ epy (* (sin (+ (nth 0 winkelliste) 1.57079635)) (nth 0 n)))
        (+ epz (* (sin (+ (nth 2 winkelliste) 1.57079635)) (nth 1 n))))
    )
  )
    )
      );if
    (if (= s 1)
      (setq pliste (append pliste
(list
  (list (+ epx (* (cos (+ (nth 0 winkelliste) 1.57079635)) (nth 0 n)) (* (cos (+ 0.0 1.57079635)) (nth 1 n)))
        (+ epy (* (sin (+ (nth 0 winkelliste) 1.57079635)) (nth 0 n)))
        (+ epz (* (sin (+ 0.0 1.57079635)) (nth 1 n))))
    )
  )
    )
      );if 
    );foreach

    (fc_adt_plinie
      pliste
      "test"
      1
      9)
  (entlast)
)

(defun fc_adt_pliste_verzerren (pliste fx fy fz / tmpliste n)
  (setq tmpliste nil)
  (foreach n pliste
    (if tmpliste
      (setq tmpliste (append tmpliste (list (list (* (nth 0 n) fx)
  (* (nth 1 n) fy)
  (* (nth 2 n) fz)))))
      (setq tmpliste (list (list (* (nth 0 n) fx)
(* (nth 1 n) fy)
(* (nth 2 n) fz)))))
  );foreach
  tmpliste
)


;fc_adt_ftbinder_satteldach
(defun c:eee (/ l1 l2 f1 f2 f3 bfo bfu hf1 hf2 hf3 hf4 bs ok h1 alpha
    p1 p2 faktor1 alphabog
      pfad1 q1 obergurt osmodes pfad2 pfad3 q2 untergurt
      pfad4 steg q3 auswahl)

  (command "bks" "w")

(princ "\n*")
  (setq l1 15.00
l2 16.00
f1 0.02
f2 0.01
f3 0.02
f4 0.2
ok 7.01
bfo 0.6
bfu 0.3
bs 0.15
bf 0.3
hf1 0.1
hf2 0.05
hf3 0.07
hf4 0.2
h1 1.50
h2 0.5
alpha 3.0)

  (setq alphabog (* (/ 3.1415927 180.0) alpha))

  ;faktor
  (setq faktor1 (/ (/ (+ hf1 hf2) (cos alphabog)) (+ hf1 hf2)))

  (setq auswahl (ssadd))

  ;**************************** OBERGURT ******************************************
  ;pfad für obergurt
  (setq pfad1 (fc_adt_plinie (list (list 0.0 0.0 ok)
  (list (+ (- (/ l2 2)) f1 f4)
0.0
(- ok (* (atan alphabog) (- (/ l2 2) f1 f4)))
))
"pfad" 4 8)
);if
  (setq pfad2 (fc_adt_plinie (list (list 0.0 0.0 ok)
  (list (- (/ l2 2) f1 f4)
0.0
(- ok (* (atan alphabog) (- (/ l2 2) f1 f4)))
))
"pfad" 4 8)
);if
;(fc_adt_pliste_verzerren pliste fx fy fz)
  (setq obergurt (list (list (+ (/ bfo 2)) 0.0 0.0)
      (list (+ (/ bfo 2)) (- hf1) 0.0)
      (list (+ (/ bs 2)) (- 0.0 hf1 hf2) 0.0)
      (list (- (/ bs 2)) (- 0.0 hf1 hf2) 0.0)
      (list (- (/ bfo 2)) (- hf1) 0.0)
      (list (- (/ bfo 2)) 0.0 0.0)
      )
)
  (princ "\nobergurt:")
  (princ obergurt)
  (setq obergurt (fc_adt_pliste_verzerren obergurt 1.0 faktor1 1.0))

  (setq q1 (fc_flaeche_an_pfad_ausrichten2
    obergurt
    (list 0.0 0.0 ok)
    (list (- 0.0 (/ l2 2) f1 f4)
  0.0
  (- ok (* (atan alphabog) (- (/ hf2 2) f1 f4)))
  )
    1)
)
  (setq osmodes (getvar "osmode"))
  (setvar "osmode" 0)

  (command "_extrude" q1 "" "pfad" pfad1)

  (command "masselementconvert" (entlast) "" "ja" "")

  (command "draworder" "l" "" "unten")

  (ssadd (entlast) auswahl)

  (setq q1 (fc_flaeche_an_pfad_ausrichten2
    obergurt
    (list 0.0 0.0 ok)
    (list (- 0.0 (/ l2 2) f1 f4)
  0.0
  (- ok (* (atan alphabog) (- (/ hf2 2) f1 f4)))
  )
    1)
)

  (command "_extrude" q1 "" "pfad" pfad2)

  (command "masselementconvert" (entlast) "" "ja" "")

  (command "draworder" "l" "" "unten")

  (ssadd (entlast) auswahl)

  (entdel pfad1)
  (entdel pfad2)

;**************************** UNTERGURT ******************************************
  ;pfad für obergurt
  (setq pfad3 (fc_adt_plinie (list (list (+ (- (/ l1 2)) f3)
0.0
(- ok h1)
)
  (list (- (/ l1 2) f3)
0.0
(- ok h1)
))
"pfad" 4 8)
)


  (setq untergurt (list (list (+ (/ bfu 2)) 0.0 0.0)
(list (+ (/ bfu 2)) hf4 0.0)
(list (+ (/ bs 2)) (+ hf4 hf3) 0.0)
(list (- (/ bs 2)) (+ hf4 hf3) 0.0)
(list (- (/ bfu 2)) hf4 0.0)
(list (- (/ bfu 2)) 0.0 0.0)
      )
)
    (princ "\nuntergurt:")
  (princ untergurt)
  (setq q2 (fc_flaeche_an_pfad_ausrichten2
    untergurt
    (list (+ (- (/ l1 2)) f3) 0.0 (- ok h1))
    (list (- (/ l1 2) f3) 0.0 (- ok h1))
    1)
)

  (command "_extrude" q2 "" "pfad" pfad3)

  (command "masselementconvert" (entlast) "" "ja" "")

  (command "draworder" "l" "" "unten")

  (ssadd (entlast) auswahl)

  (entdel pfad3)

;**************************** STEG ******************************************
  ;pfad für obergurt
  (setq pfad4 (fc_adt_plinie (list (list 0.0 (- (/ bs 2)) (- ok h1))
  (list 0.0 (+ (/ bs 2)) (- ok h1)))
"pfad" 4 8)
)


  (setq steg (list (list (- (/ l1 2) f3) (+ hf4 hf3) 0.0)
  (list (- (/ l1 2) f3) (- h1 (* (atan alphabog) (- (/ l2 2) f1)) h2) 0.0)
  (list (- (/ l2 2) f3) (- h1 (* (atan alphabog) (- (/ l2 2) f1)) h2) 0.0)
  (list (- (/ l2 2) f3) (- h1 (* (atan alphabog) (- (/ l2 2) f1))) 0.0)
  (list 0.0 h1 0.0)
  (list (- f3 (/ l2 2)) (- h1 (* (atan alphabog) (- (/ l2 2) f1))) 0.0)
  (list (- f3 (/ l2 2)) (- h1 (* (atan alphabog) (- (/ l2 2) f1)) h2) 0.0)
  (list (- f3 (/ l1 2)) (- h1 (* (atan alphabog) (- (/ l2 2) f1)) h2) 0.0)
  (list (- f3 (/ l1 2)) (+ hf4 hf3) 0.0)
      )
)
  (setq q3 (fc_flaeche_an_pfad_ausrichten2
    steg
    (list 0.0 (- (/ bs 2)) (- ok h1))
    (list 0.0 (+ (/ bs 2)) (- ok h1))
    1)
)

  (command "_extrude" q3 "" "pfad" pfad4)

  (command "masselementconvert" (entlast) "" "ja" "")

  (command "draworder" "l" "" "unten")

  (ssadd (entlast) auswahl)

  (entdel pfad4)



  (princ "\nFertig !")
  (setvar "osmode" osmodes)
  (princ)
  );defun

------------------
MfG
Frank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



Sehen Sie sich das Profil von charlieBV an!   Senden Sie eine Private Message an charlieBV  Schreiben Sie einen Gästebucheintrag für charlieBV

Beiträge: 9318
Registriert: 28.08.2003

Win 10 Pro

erstellt am: 02. Jan. 2007 09:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fca_mi2 10 Unities + Antwort hilfreich

Hi,

ich denke, dass der Beitrag im Lisp-Board wesentlich besser aufgehoben ist, darum schließe ich ihn hier und verweise nach hier.

------------------
Gruß Yvonne                                    ADT-Help-Site

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz