Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Objekt Polyline / Gruppencode 70

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
Autor Thema:   Objekt Polyline / Gruppencode 70 (822 mal gelesen)
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: 740
Registriert: 20.11.2003

erstellt am: 05. Apr. 2005 13:13    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,

beim Objekt Polyline ist der Gruppencode 70 enthalten, der verschiedene bitcodierte Werte haben kann. Ich möchte nun kontrollieren, ob ein bestimmtes Bit im Wert enthalten ist.

Gibt es dafür eine Funktion oder wie kann ich das kontrollieren?

Danke im Voraus und viele Grüße
Bernd

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 05. Apr. 2005 13:25    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 Bernd10 10 Unities + Antwort hilfreich

z.B:
wenn (=(logand ZAHL BITVALUESUMME) BITVALUESUMME) True, dann Bitwert gesetzt
oder auf Bitnummer testen :
(logand ZAHL (lsh 2 (- BITNR 2)))

sieh dir auch die Funktion boole mal an

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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: 740
Registriert: 20.11.2003

erstellt am: 05. Apr. 2005 14: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

Hallo Thomas,

Zitat:
Original erstellt von CADmium:

wenn (=(logand ZAHL BITVALUESUMME) BITVALUESUMME) True, dann Bitwert gesetzt

Mir würde ein Ergebnis true/false (t/nil) ausreichen. Aber ich glaube, dass in Deinem Code noch ein Fehler ist:

gemäß Deinem Code:
$ (=(logand 1 129) 129)
nil
-> sollte eigentlich t als Ergebnis haben.

$ (=(logand 1 129) 1)
T
-> das ist richtig, oder?

Gruß Bernd

EDIT:
Habe gerade diesen Beitrag noch gefunden: http://ww3.cad.de/foren/ubb/Forum145/HTML/000445.shtml
Danke und Us für Dich.

[Diese Nachricht wurde von Bernd10 am 05. Apr. 2005 editiert.]

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13435
Registriert: 30.11.2003

.

erstellt am: 05. Apr. 2005 14: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 Nur für Bernd10 10 Unities + Antwort hilfreich

(=(logand ZAHL BITVALUESUMME) BITVALUESUMME)
-> so !!!
(=(logand 129 (+ 1 4) (+ 1 4))) --> 'T
sagt aus, das sich  129 aus 1+4+ andere 2'er Potenzen zusammensetzt

Alles klar?

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2484
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 05. Apr. 2005 16: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 Nur für Bernd10 10 Unities + Antwort hilfreich

Hi,
nach dem ausgiebigen Studium von Mapcars Seiten, http://www.tutorial.autolisp.info/
und folgende, habe ich mir folgende Funktionen gebaut:

Code:

;; Bitcode-Magic by Axel "mapcar" Strubbe-Zettler
;; Zerlegt einen Bitcode in eine Liste der Einzelwerte
;; z.B.: (FINDBITS (getvar "osmode")) -> (16384 4 1)
(defun FINDBITS (NUM / A BITLIST)
  (setq A 1)
  (while (>= NUM A)
    (if (= (logand NUM A) A)
      (setq BITLIST (cons A BITLIST))
    ) ;_ end of if
    (setq A (lsh A 1))
  ) ;_ end of while
  BITLIST
) ;_ end of defun


;; Funktion guckt nach, ob ein Bit in dem Bitcode vorkommt
;; z.B.: (checkflag (getvar "osmode") 2) -> T oder nil
(defun CHECKFLAG (NUM FLAG)
  (= (logand NUM FLAG) FLAG)
) ;_ end of defun

;; Fügt dem Bitcode das entsprechde Bit hinzu,
;; wenn noch nicht gesetzt
(defun SETFLAG (NUM FLAG)
  (logior NUM FLAG)
) ;_ end of defun

;; entfernt das Bit, wenn es existiert
(defun REMOVEFLAG (NUM FLAG)
  (if (CHECKFLAG NUM FLAG)
    (- NUM FLAG)
    NUM
  ) ;_ end of if
) ;_ end of defun


...

------------------
Ciao,
Marc

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: 740
Registriert: 20.11.2003

erstellt am: 06. Apr. 2005 07: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

Hallo Marc,

tolle Sammlung und natürlich Us für Dich.

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)2020 CAD.de | Impressum | Datenschutz