Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  2D-Array

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:  2D-Array (581 mal gelesen)
Bäumchen
Mitglied
Technischer Assistent für Informatik


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

Beiträge: 36
Registriert: 21.04.2007

erstellt am: 19. Jul. 2007 01: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

Hallo,

ich habe leider nix gefunden wie ich in LISP ein Array deklarieren kann.
Kann ich das Array dann auch an ObjectARX also C++ weitergeben?

es soll nur so aussehen:
HEM400 --> 8
HEM500 --> 4
Fundament --> 4

also name --> wert


ich hoffe mal das es dafür eine ganz einfache lösung gibt!
wie gesagt, es soll im LISP-Code ganz oben stehen und dann an ARX weiter gegeben werden


danke
norbert

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Jul. 2007 07:53    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 Bäumchen 10 Unities + Antwort hilfreich

Hallo Norbert,

ein array gibt es als Datentyp nicht. Das heißt im Lisp LIST und steht für Liste.
Das Anlegen funktioniert eigentlich ganz einfach:
(list 1 2 3 4) -> (1 2 3 4)
Du möchtest aber eine sogenannte Assoziationsliste, dazu musst die die einzelnen Listenelemente mit (cons KEY VAL) bilden:
(cons "HEM400" 8)
(cons "HEM500" 4)
(cons "Fundament" 4)
Dies kannst du in eine Liste packen:
(list
  (cons "HEM400" 8)
  (cons "HEM500" 4)
  (cons "Fundament" 4)
) was dann zu dem von dir gewünschten Ergebnis führt.

Wie du das jetzt allerdings einer anderen Anwendung zugänglich machst .. keine Ahnung. Ein Weg wäre ja z.B. über die Zwischenablage. Ob dann die Liste sauber ankommt .. ??
Da würde dann vielleicht ein String helfen, den man dann über eine Split-Funktion wieder in eine array umwandelt: Vielleicht so
"HEM400&8#HEM500&4#Fundament&4"
An die Zwischenablage kommst du in Lisp via ActiveX.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Bäumchen
Mitglied
Technischer Assistent für Informatik


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

Beiträge: 36
Registriert: 21.04.2007

erstellt am: 19. Jul. 2007 10:55    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,

vielen Dank
das mit dem String, ist eine richtig gute Idee, in ARX bzw. C++ kann ich die ja wieder in ein Array zusammen basteln.

ich probiere dann mal, die LIST in einen String zusammen zubasteln, meöde mich bestimmt noch mal.


DANKE

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

Bäumchen
Mitglied
Technischer Assistent für Informatik


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

Beiträge: 36
Registriert: 21.04.2007

ACAD2007
WinXP Prof

erstellt am: 19. Jul. 2007 14: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

boar, LISP ist so ein mist *fg*

ich habe bei mapcar n bissel gesucht und versucht es zuverstehen, aber es klappt net.
denn foreach und while gibts zwar, aber ich sehe da nicht, die anwendung auf meine Aufgaben

also die Liste:
(list
  (cons "HEM400" 8)
  (cons "HEM500" 4)
  (cons "Fundament" 4)
)

in wie du es schon vorgeschlagen hattest:
HEM400&8#HEM500&4#Fundament&4
also Name&Wert


ich hoffe mal es kann mir jemand helfen
danke schon einmal!

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Jul. 2007 15: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 Nur für Bäumchen 10 Unities + Antwort hilfreich

na da warst du ja schon auf der Seite, deren Domain der wichtigste Befehl ist.
Code:

(substr ;das erste # muss wieder weg
  (apply 'strcat ;verbinde alle Zeichenketten aus der Liste zu einer
      (mapcar '(lambda (S)
  (strcat "#"(car S) "@"(itoa (cdr S)));Aufbauen der Zeichenkette
  )
      (list
(cons "HEM400" 8)
(cons "HEM500" 4)
(cons "Fundament" 4)
)
      )
      )
2
)

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

Peter.Pohl
Mitglied
Stahlbau-Konstrukteur


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

Beiträge: 50
Registriert: 21.04.2006

erstellt am: 19. Jul. 2007 23: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 Bäumchen 10 Unities + Antwort hilfreich

Hallo Norbert,

wie wäre es hiermit?
____________________________________________________________________
(defun MakeArray (/ lst array)
  (setq lst (list (list "HEM400" 8)
      (list "HEM500" 4)
  (list "Fundament" 4))
array (vlax-make-safearray vlax-vbString '(0 . 2) '(0 . 1))
var (vlax-make-variant (vlax-safearray-fill array lst)))
)
____________________________________________________________________

Gruß Peter

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

Bäumchen
Mitglied
Technischer Assistent für Informatik


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

Beiträge: 36
Registriert: 21.04.2007

ACAD2007
WinXP Prof

erstellt am: 20. Jul. 2007 00: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

guten abend,
ich kann nicht einsätzen was besser ist!

das von Brischke erscheint mir logischer
also wie der String zusammen gebastelt wird!

was macht die 2 an dem ende von dem code?


mfg
norbert

[Diese Nachricht wurde von Bäumchen am 20. Jul. 2007 editiert.]

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 20. Jul. 2007 02: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 Bäumchen 10 Unities + Antwort hilfreich

Das ist der zweite Parameter von Substr.
Teilstring ab dem 2. Zeichen zurückgeben.

------------------
Mit freundlichem Gruß

Udo Hübner

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

Bäumchen
Mitglied
Technischer Assistent für Informatik


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

Beiträge: 36
Registriert: 21.04.2007

erstellt am: 20. Jul. 2007 10: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

guten morgen,

vielen Dank


werde jetzt mich mal an die Fehler in ARX ran probieren und auch an die übergabe von dem String
also von LISP in ARX

vielen Dank

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