Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  EED von Datenbankverknüpfungen

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 Autodesk Produkte
Autor Thema:  EED von Datenbankverknüpfungen (961 mal gelesen)
FlorianP
Mitglied
Verm.-Ing


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

Beiträge: 44
Registriert: 04.12.2002

AutoCAD Map 2000i

erstellt am: 26. Apr. 2006 07:42    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 Forum,

wenn Objekte mit einer Datenbank verknüpft sind stehen doch in den EED's unter dem Code 1004 die entsprechenden Verknüpfungshinweise.
Diese sind HEX-codiert.
Bisher bin ich so vorgegangen, dass ich mir die Eintragungen genommen habe und mit einer Funktion HEX2CHR in lesbare Zeichen umgewandelt habe.

Nun habe ich aber ein Code, der sich nicht mehr umwandeln läßt. Zumindest kommt nicht die Zeichenfolge dabei heraus, die in der Datenbank als Verknüpfungs-ID steht.

Hier mal ein Beispiel:

(-3 ("DCO15" (1071 . 1) (1071 . 1) (1000 . "S13_Brandmelder") (1004 . "000000000098B440")))

Verknüpfungs-ID:  5272.0000

Auf diese Weise habe ich mir die Vorgehensweise über CAO erspart.

Weiß jemand wie ich diesen 1004er-Code umwandeln kann oder wie ich auf die '5272.0000' komme?

Wenn nicht muss ich halt über CAO gehen.

Vielen Dank

Florian

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 27. Apr. 2006 09: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 FlorianP 10 Unities + Antwort hilfreich

Hallo Florian,

Zitat:
Original erstellt von FlorianP:

Hier mal ein Beispiel:

(-3 ("DCO15" (1071 . 1) (1071 . 1) (1000 . "S13_Brandmelder") (1004 . "[b]000000000098B440")))

Verknüpfungs-ID:   5272.0000

Weiß jemand wie ich diesen 1004er-Code umwandeln kann oder wie ich auf die '5272.0000' komme?
[/B]


vielleicht hilft Dir folgendes weiter:

;-------------------------------------------------------------------------------------------------------------------------------------
;
; INPUT und INPUTRESTRIKTIONEN
; ============================
;
; Parameter    :
;
; Typ    Variablename      Variablebeschreibung [Wertebereich]
; int    irebasis          Rechenbasis
;                          8 = oktal
;                          16 = hexadezimal
; str    cokthex          Oktal- oder Hexadezimalwert

;
; OUTPUT und OUTPUTRESTRIKTIONEN
; ================================
;
; Parameter    :
;
; Typ    Variablenname    Variablenbeschreibung  [Wertebereich]
; int    idezwert          Dezimalwert

;-------------------------------------------------------------------------------------------------------------------------------------

( defun okthex_to_dez ( irebasis cokthex
                        /
                        cokthex1 cokthexrest cokthexstd
                        idezi_teil idezwert islenokthex islenokthexrest izlerokthexbasis
                        lmemberbasis lokthexbasis )

; Die Liste entsprechend der Rechenbasis erstellen
  (setq lokthexbasis nil)
  (setq izlerokthexbasis 0)
  (while (< izlerokthexbasis irebasis)
    (setq cokthexstd (dez_to_okthex irebasis izlerokthexbasis))
    (setq cokthexstd (substr cokthexstd (strlen cokthexstd))) ; nur einstellig
    (setq lokthexbasis (append lokthexbasis (list cokthexstd)))
    (setq izlerokthexbasis (+ izlerokthexbasis 1))
  ) ; while

; Den Dezimalwert ermitteln 
  (setq cokthexrest cokthex)
  (setq idezwert nil)
  (setq islenokthex (strlen cokthex))
  (repeat (strlen cokthexrest)
    (setq cokthex1 (strcase (substr cokthexrest 1 1)))
    (setq cokthexrest (substr cokthexrest 2))
    (setq islenokthexrest (strlen cokthexrest))
    (setq lmemberbasis (member cokthex1 lokthexbasis))
    (setq idezi_teil (* (- irebasis (length lmemberbasis)) (expt irebasis (- islenokthex (- islenokthex islenokthexrest)))))
    (if (= idezwert nil)
      (setq idezwert idezi_teil)
      (setq idezwert (+ idezwert idezi_teil)) ; else
    ) ; if
  ) ; repeat

; Rückgabewert
  idezwert

) ; Modulende 

Gruß Bernd

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

FlorianP
Mitglied
Verm.-Ing


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

Beiträge: 44
Registriert: 04.12.2002

AutoCAD Map 2000i

erstellt am: 27. Apr. 2006 09:56    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 Bernd,

vielen Dank für dein Programm.

Du hast in dem Programm eine Funktion eingebaut 'dez_to_okthex', könntest du die auch noch kurz reinstellen, da ich nicht genau weiß was dabei passiert. (von der Bezeichnung ableitend würde ich sagen, dass eine Umwandlung von dezimal nach oktal oder hexadezimal stattfindet)

Das Programm wandelt eine Hex- oder Okt-Zahl in eine Dezimalzahl um. Ist das so richtig?

Wenn dem so ist, so eine Funktion habe ich auch schon. Wobei ich nur von HEX nach Dez umwandeln kann.

Meine Frage wäre eigentlich, wie ich die '000000000098B440' interpretieren kann, damit ich auf den Wert '5272.0000' komme.

Vielen Dank

Gruß Florian

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 28. Apr. 2006 08: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 FlorianP 10 Unities + Antwort hilfreich

Hallo Florian,

Zitat:
Original erstellt von FlorianP:

Du hast in dem Programm eine Funktion eingebaut 'dez_to_okthex', könntest du die auch noch kurz reinstellen, da ich nicht genau weiß was dabei passiert. (von der Bezeichnung ableitend würde ich sagen, dass eine Umwandlung von dezimal nach oktal oder hexadezimal stattfindet)


hier die Funktionen. Ich hoffe es nun alle.
;-------------------------------------------------------------------------------------------------------------------------------------
;
; Schnittstelle zu anderen Modulen:
;
; INPUT und INPUTRESTRIKTIONEN
; ============================
;
; Parameter    :
;
; Typ    Variablename      Variablebeschreibung [Wertebereich]
; int    irebasis          Rechenbasis
;                          8 = oktal
;                          16 = hexadezimal
; int    idezwert          Dezimalwert
;
; OUTPUT und OUTPUTRESTRIKTIONEN
; ================================
;
; Parameter    :
;
; Typ    Variablenname    Variablenbeschreibung  [Wertebereich]
; str    cokthexwert      Oktal- oder Hexadezimalwert

;-------------------------------------------------------------------------------------------------------------------------------------

( defun dez_to_okthex ( irebasis idezwert
                        /
                        cokthexteil cokthexwert
        irest )

; Den Dezimalwert wandeln
  (setq cokthexteil (okthex_teil irebasis idezwert))
  (setq irest (/ idezwert irebasis))
  (while (>= irest irebasis)
    (setq cokthexteil (strcat (okthex_teil irebasis irest) cokthexteil))
    (setq irest (/ irest irebasis))
  ) ; while
  (setq cokthexwert (strcat (okthex_teil irebasis irest) cokthexteil))

; Rückgabewert
  cokthexwert

) ; Modulende 

;-------------------------------------------------------------------------------------------------------------------------------------

(defun okthex_teil ( irebasis iwert
            /
            crgwert
            irest )

; Einen Teil des Oktoal- bzw. Hexadezimal-Wertes ermitteln
  (if (> (setq irest (rem iwert irebasis)) 9)
    (setq crgwert (chr (+ 55 irest)))
    (setq crgwert (itoa irest))
  ) ; if
 
; Rückgabewert
  crgwert
 
) ; Modulende

Zitat:
Original erstellt von FlorianP:

Das Programm wandelt eine Hex- oder Okt-Zahl in eine Dezimalzahl um. Ist das so richtig?


Ja.

Zitat:
Original erstellt von FlorianP:

Meine Frage wäre eigentlich, wie ich die '[b]000000000098B440
' interpretieren kann, damit ich auf den Wert '5272.0000' komme.
[/B]

Leider keine Ahnung.

Gruß Bernd

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