Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Dichte unabhängig von den Systemeinheiten setzen

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

Anzeige:

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 Creo
Autor Thema:  Dichte unabhängig von den Systemeinheiten setzen (1440 mal gelesen)
StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 05. Okt. 2017 10:08    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

Guten Morgen!

Wir haben folgendes Problem beobachtet:

Bei uns sind die Systemvorgaben für die Masse = g und für die Länge = mm.
Nun verwenden wir ein Makro um die Dichte und Farbe für Teile zu setzen. Soweit so gut! Allerdings passt das Ganze nicht mehr wenn ein Anwender temporär die Systemvorgaben ändert (häufig auf Kilogramm und Meter) und dann das Makro ausführt. Es werden dann statt 0.00785 g/mm3 entsprechend 0.00785 kg/m3 gesetzt. Beim zurücksetzen oder beim Neustart (g und mm) hat das Teil dann eine Dichte von 0.0000000078 g/mm3??


Frage: Gibt es eine Möglichkeit beim setzen der Dichte die entsprechenden Einheiten (g/mm3) mitzugeben???


Hier die Funktion welche die PartProps setzt:


(defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
      (if (sd-inq-obj-parent-contents-read-only-p Teil) ;; wenn Besitzer schreibgeschützt
        ;;Then...
        (progn
          (part_prop
            :the_part         Teil
            :base_color       Teilefarbe  :done
            :BASE_EDGE_COLOR  0 :done
            :base_trans       Teiletransparenz
            :base_density     Teiledichte    
          );;part_prop
        );;progn
        ;;Else....
        (progn
          (part_prop
            :the_part         Teil
            :base_color       Teilefarbe  :done
            :COLOR            :OFF            ;:done   ;;  Exemplarfarbe :OFF = KEINE >> setzt auch Exemplarkantenfarbe zurück!!
            :BASE_EDGE_COLOR  0 :done
            :base_trans       Teiletransparenz
            :trans            :none
            :base_density     Teiledichte
            :density          :OFF
          );;part_prop
        );;progn 
      );;if
    );;SetPartProps


------------------
...viele Grüße
Stephan

[Diese Nachricht wurde von StephanWörz am 05. Okt. 2017 editiert.]

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 05. Okt. 2017 12:20    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 StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
Code:
(defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
      (if (sd-inq-obj-parent-contents-read-only-p Teil) ;; wenn Besitzer schreibgeschützt
....    );;SetPartProps


Woher soll deine funktion denn wissen, welche unit verwendet wird?

part_prop  ist eine action routine. Also gehe ich davon aus, das Du diese Funktion aus einem anderem Dialog aufrufst, evtl. sogar mir einem sd-call-cmds gekapselt?

Wie sieht der Aufruf aus, und wo kommt die zu setzende Dichte her?

Fuer lenght und angle gibt es ja entsprechende variable types, die im dialog generator definiert sind. Diese zeigen im UI dann das "richtige" an (also user units), intern haben sie aber immer den value in system units.

Fuer Dichte gibt es so etwas nicht (also nehme ich mal an es ist einfach eine :Positive-number in deinem Dialog)

Ich vermute nun arg, das du zwischen dieser dialog variable und dem Aufruf deiner Funktion noch ein (sd-user-to-sys-units unit-type value), spendieren muesstest.  mit :density als unit-type, weil dein Eingabe wert ja UNIT behaftet ist.

Aber nun habe ich schon zu viele Annahmen getroffen. Mit der Funktion alleine kann man deine Frage schlecht beanworten. Da ist das drum rum doch etwas erforderlich.

-------------------
vielleicht simulierst Du Dir mal eine :Positive-length variable mit hilfe einer :number variable + check funktion + unit conversion.

HTH 

- - - - - - - - - - - - - - - - - - - - - - - - - -
PS: fuer Sourcecode gibt es den UBB-Code : [ code ] ... [/ code ]

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 05. Okt. 2017 12:45    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 StephanWörz 10 Unities + Antwort hilfreich

eigentlich muesste das Thema sein:

Dichte unabhängig von den Benutzereinheiten (user units) setzen  -- oder?  

so in etwa:

Code:
:variables
.....
(dichte
   :value-type :Positive-number
   :initial-value (sd-sys-to-user-units :Density 0.00785)
   ;proposals auto-add-proposals  usw
   :Prompt-text "Alles noch ganz dicht, hoffentlich"
   :after-input (setq densityNew (sd-user-to-sys-units :Density dichte))
   )
  (densityNew
   :initial-value 0.00785)  ;; hart wir Kruppstahl
....

:Ok-action
'(sd-call-cmds (SetPartProps myPart colorNew densityNew transparancyNew))
....


just coded and 100% untested

[edit]Aenderungen hervorgehoben[/edit]

[Diese Nachricht wurde von der_Wolfgang am 06. Okt. 2017 editiert.]

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 06. Okt. 2017 07:10    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

Guten Morgen!

Also aufgerufen wird das Ganze so:

Code:
(sd-defdialog 'SD_SetPartProp_Baustahl
  :Dialog-control :sequential
  :toolbox-button nil
  :variables '(

(prt :value-type :Part
    :multiple-items t
    :modifies nil
    :Prompt-text "STAHL  -  Teil(e) angeben"
    :next-variable 'prt
); end prt
); end variables

:Ok-action '(dolist (Teil prt)
;;          SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
(BASICTOOLS::SetPartProps Teil (sd-rgb-to-color 0.7,0.9,1) 0.00785 0)
);;dolist
) ;; sd-defdialog


Die aufgerufene Funktion wird bei Start von Modeling geladen (in-package :BASICTOOLS).

------------------
...viele Grüße
Stephan

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

Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

erstellt am: 06. Okt. 2017 08:07    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 StephanWörz 10 Unities + Antwort hilfreich

Hallo Stephan,

ich hätte auch noch mal ne kurze Frage. Weist ihr immer Stahl zu, weil sonst kann man das ja auch grundsätzlich festsetzen unabhängig von den Einheiten. Oder habt ihr dieses Programm mehrmals für verschiedene Materialien?

------------------
Gruß Peter

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 06. Okt. 2017 09:11    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


Buttons.JPG


Teilematerial.JPG


SD_Teilematerial.lsp

 
...wir weisen jedem Bauteil die dem Material entsprechende Dichte und eine von uns definierte Farbe zu!

Mit den Buttons in der Menuleiste wird die o.g. Funktion bedient.

Wir haben dann auch noch das LISP im Anhang im Einsatz.

------------------
...viele Grüße
Stephan

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 06. Okt. 2017 09:26    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


SD_SetPartProperties.lsp


01_BasicTools.lsp


CadStart.bat.txt

 
...die Funktionalität hinter den Buttons wird in der SD_SetPartProperties.lsp definiert.
...die Funktion SetPartProbs wird in der 01_BasicTools.lsp definiert (und noch viel mehr  )

Die Buttons werden in der sd_avail_cmds.cmd definiert

Code:
("SD_SetPartProp_Baustahl"
:title      "Baustahl"
:action      "SD_SetPartProp_Baustahl"
:Description "... setzt Teileigenschaften fÏr Baustahl"
:image      (format nil "~a/SD_Stahl.bmp" (MEI::GETENV "SCHILLERICONDIR"))
:ui-behavior :DEFAULT)

Wir starten mit einer Batchdatei CadStart.bat . Hier werden Verzeichnisse gesetzt (SCHILLERICONDIR, ...), z.T. Useranpassungen gelöscht und das Modeling gestartet.


Vielleicht interessiert sich ja jemand dafür.

------------------
...viele Grüße
Stephan

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

Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

erstellt am: 06. Okt. 2017 10:39    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 StephanWörz 10 Unities + Antwort hilfreich

so, habe da mal was eingebaut, wenn ihr bei den Einheiten jetzt nur KG und Gramm habt, bei Pounds oder sowas muss noch mehr gemacht werden.
sind die beiden when Funktionen im "SetPartProps"
Ich habe es getestet, bei mir klappt es...

Code:

    (defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
(when (eq :KG (first (sd-inq-mass-units)))      ;; hinzu gekommen
(setq Teiledichte (* 0.001 Teiledichte) )                  ;; hinzu gekommen
)                                              ;; hinzu gekommen
(when (eq :G (first (sd-inq-mass-units)))      ;; hinzu gekommen
(setq Teiledichte (* 1 Teiledichte) )                      ;; hinzu gekommen
)
      (if (sd-inq-obj-parent-contents-read-only-p Teil) ;; wenn Besitzer schreibgeschützt
        ;;Then...
        (progn
          (part_prop

------------------
Gruß Peter

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 06. Okt. 2017 11:50    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 StephanWörz 10 Unities + Antwort hilfreich

Stephan, vielen Dank fuer die Offenlegung!
_____________________________________________________

ein mehrfaches (when .. ) ist eher ein case oder eine cond-ition.

Zudem beruecksichtigst du (Peter) doch noch nur die Massen-Einheit und nicht die Laengen-Einheit. Aber beide sind wichtig.

Ich wuerde alle defun's immer so schreiben das diese in system units arbeiten. Dann braucht man sich nicht drum zu kuemmern und kann Funktionen von hier und da aufrufen. Der Aufrufer (oft ein sd-defdialog) moege sich dann um unit spezifische Dinge kuemmern. 

Aber, gut, wenns denn so sein soll, warum dann nicht:

Code:
(defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
      (setq Teiledichte (sd-user-to-sys-units :Density Teiledichte)) ;; ++
      (if (sd-inq-obj-parent-contents-read-only-p Teil)
        ;;Then...
        (progn
          (part_prop

Wobei ich das Veraendern von Eingabeparameter (hier : Teiledichte) nicht sehr mag. Aber das ist persoenlicher Programmierstil.


Mit

Code:
(setq faktor (/ 1 (sd-user-to-sys-units :mass 1)))
wuerde man direkt an den Umrechnungsfaktor fuer die Masse kommen. Aber warum den Faktor bestimmen, wenn die oli-funktion die ganze Rechnung macht?

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

Greskamp
Mitglied
Ingenieur


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

Beiträge: 523
Registriert: 12.03.2003

erstellt am: 06. Okt. 2017 11:52    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 StephanWörz 10 Unities + Antwort hilfreich

Hallo Wolfgang,

ich würde mich programmiertechnisch auch nicht auf eine Stufe mit dir stellen und mit Sicherheit ist mein Befehl verbesserungsfähig. Die Länge spielt natürlich auch eine Rolle, aber mir hat es gereicht das ich das Gewicht erst mal hinbekommen habe.
Ich sehe mich als Programmieranfänger und freue mich wenn ich eine Lösung gefunden habe.

------------------
Gruß Peter

[Diese Nachricht wurde von Greskamp am 06. Okt. 2017 editiert.]

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 06. Okt. 2017 12:04    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

Ich freue mich auch wenn Du eine Lösung gefunden hast 

...ich werde mal versuchen das bisher geschriebene zu verarbeiten.

Danke an Euch beiden!

------------------
...viele Grüße
Stephan

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 11. Okt. 2017 14:33    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

Hallo!


Code:

(sd-user-to-sys-units unit-type value)


Description:
Converts a value from user units, to the current internal system units (mm, rad, g).

Frage: Sind die internen Systemeinheiten immer mm, rad, g ??

Code:
(defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
      (setq Teiledichte (sd-user-to-sys-units :Density Teiledichte)) ;; ++
      (if (sd-inq-obj-parent-contents-read-only-p Teil)
        ;;Then...
        (progn
          (part_prop

Hat bei mir nicht funktioniert! beim wechseln der Einheiten ändert sich auch der Wert bei Teileigenschaften>>Material ???

Oder zeigen die Teileeigenschaften immer in Benutzereinheiten an??

Ist es nicht so dass ein

Code:
(setq Teiledichte (sd-user-to-sys-units :Density 0.0079))

Auf jeden Fall dann einen Wert mit der Einheit g/mm3 liefern sollte??

...irgendwie bin ich noch nicht durch.

------------------
...viele Grüße
Stephan

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 11. Okt. 2017 15:12    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 StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
Frage: Sind die internen Systemeinheiten immer mm, rad, g ??
ja - man koennte sich ja sonst gar nimmer nie auf nix drauf verlassen.

Zitat:
... zeigen die Teileeigenschaften immer in Benutzereinheiten an??
ja - das ist USER Interface und da werden die unit behafteten Werte mit den user units angezeigt (bzw. wenn nicht (beispielsweise Ausgabe in die Displaybox) sollte die Unit mit ausgegeben werden)

Zeige dir die Teileeigenschaften immer wieder an und wechsel die Einheiten. Kannst ja auch mal 0.5mm als Laengen Einheit verwenden.

Zitat:
Ist es nicht so dass ein
Code:
(setq Teiledichte (sd-user-to-sys-units :Density 0.0079))

Auf jeden Fall dann einen Wert mit der Einheit g/mm3 liefern sollte??

spendiere ein (pprint Teiledichte) davor und dahinter und spiele dann im UI an den einheiten rum.

Beachte aber, das Du bei dem Aufruf auch wirklich user units hineinstopfst! Ein

Code:
(pprint (oli:sd-user-to-sys-units :Density (oli:sd-user-to-sys-units :Density 0.0079)))
liefert nur in einem Fall was G'scheits (nemmlich wenn die user units genau die system units sind).

Zitat:
...irgendwie bin ich noch nicht durch.
Schulterklopf, du schaffst das schon, heute is doch sowieso der schoenste Mittwoch der Woche! 

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 12. Okt. 2017 10:11    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


Browser.JPG

 
Guten Morgen,

mit der ganzen EinheitenHinUndHerSchieberei bin ich nicht klar gekommen.

ich habe das jetzt dahingehend gelöst dass ich mir die aktuellen UserUnits merke, auf SysUnits umstelle und dann die UserUnits wieder herstelle...

Code:
    (defun SetPartProps (Teil Teilefarbe Teiledichte Teiletransparenz)
      ;Aktuelle Einheiten auslesen
        (setq LenghtUnit  (first (sd-inq-length-units)))
        (setq LenghtScale (SECOND(sd-inq-length-units)))
        (setq MassUnit    (first (sd-inq-mass-units  )))
        (setq MassScale  (SECOND(sd-inq-mass-units  )))
        (setq AngleUnit  (first (sd-inq-angle-units )))
        (setq AngleScale  (SECOND(sd-inq-angle-units )))
      ;Auf Systemeinheiten stellen
        (units 1.0 :MM )
        (units 1.0 :G  )
        (units 1.0 :DEG)       

(if (sd-inq-obj-parent-contents-read-only-p Teil) ;; wenn Besitzer schreibgeschützt
        ;;Then...
        (progn
          (part_prop
            :the_part        Teil
            :base_color      Teilefarbe  :DONE
            :BASE_EDGE_COLOR  0 :DONE
            :base_trans      Teiletransparenz
            :base_density    Teiledichte   
          );;part_prop
        );;progn
        ;;Else....
        (progn
          (part_prop
            :the_part        Teil
            :base_color      Teilefarbe  :DONE
            :COLOR            :OFF 
            :BASE_EDGE_COLOR  0 :DONE
            :base_trans      Teiletransparenz
            :trans            :none
            :base_density    Teiledichte
            :Density          :OFF
          );;part_prop
        );;progn 
      );;if
     
    ;Auf Benutzereinheiten zurückstellen
      (units LenghtScale LenghtUnit)
      (units MassScale  MassUnit  )
      (units AngleScale  Angleunit )     

    );;SetPartProps


Das hat auch den Vorteil dass ich mich nicht auch noch um den BrowserView kümmern muss.

Danke für Eure Unterstützung!

------------------
...viele Grüße
Stephan

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 12. Okt. 2017 13:40    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 StephanWörz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StephanWörz:
mit der ganzen EinheitenHinUndHerSchieberei bin ich nicht klar gekommen.
Das ist aber jetzt echt schade

Zitat:
Das hat auch den Vorteil dass ich mich nicht auch noch um den BrowserView kümmern muss.
Na wenn diese Spalte eine Darstellung in FIXER Einheit sein soll, dann muss die entsprechende Interrogator Funktion die Umrechnung von sys-units auf diese Einheit mit einem fixen Faktor durchfuehren.

Das ABFRAGEN sollte aber vollkommen unabhaengig vom SETZEN sein!!

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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



Werkstudententätigkeit im Bereich Elektrik/Elektronik Systemintegration & -steuerung MB.OS ab Juni 2024
Life is always about becoming? Im Leben geht es darum, sich auf eine Reise zu begeben, um die beste Version unseres zukünftigen Selbst zu werden. Während wir Neues entdecken, stellen wir uns Herausforderungen, meistern sie und wachsen über uns hinaus.

Bewerben Sie sich bei Mercedes-Benz und finden Sie den Aufgabenbereich, in dem Sie Ihre Talente individuell entfalten können. Dabei werden Sie von visionären Kolleginnen und Kollegen unterstützt, die Ihren Pioniergeist teilen....
Anzeige ansehenElektrotechnik, Elektronik
StephanWörz
Mitglied
Maschinenbautechniker


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

Beiträge: 770
Registriert: 11.10.2000

Xenon 3.2GHz
24GB Ram
nVidia Quadro 4000
OSDM 17M050 & 18.1
SWX 2008
PHOENIX V10

erstellt am: 12. Okt. 2017 14:17    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


SD_Schiller_Browserviews.lsp.txt


ColoredBrowser.JPG

 
...das abfragen ist unabhängig vom setzen und sieht so aus:
Code:

(defun browser-display-contents-density (node)
  (let ((node-item (sd-pathname-to-obj (BrowserNode-objPath node))))
    (if (sd-inq-part-p node-item)
      ;;Then...
      (progn
      (oli:sd-num-to-string (* 1000 (oli::sd-sys-to-user-units :Density (sd-inq-part-density node-item :contents))))
      );;progn
      ;;Else...
      "n/a"
    );;if
  );let
);;defun

Im Anhang die Komplette Definition der Browserviews.

Es wird zwar auf spezielle Attribute zugegriffen, aber vielleicht interessiert sich ja jemand dafür...

Wir haben hier auch die Möglichkeit Browserteile einzufärben.

------------------
...viele Grüße
Stephan

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
Antwort erstellen


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

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

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

(c)2023 CAD.de | Impressum | Datenschutz