Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  dynamische Anzeige am Fadenkreuz

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:  dynamische Anzeige am Fadenkreuz (3409 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 14. Mrz. 2012 14: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

Hi!

Ich möchte gern Höhen von einem Bezugstext aus setzen. Mich würde interessieren, ob es in Lisp eine Möglichkeit gibt: bevor der neue Text gesetzt wird, anzuzeigen welchen berechneten Wert der Text ergibt.
Mir also gleich am Fadenkreuz angezeigt wird, welche neue Höhe kommt nach Position des Fadenkreuzes.

Code:

(defun c:znh ()
  (setq obj (entget (car (entsel "\nWähle Textobjekt ! ")))
p1 (cdr (assoc 10 obj))
ha (atof (cdr (assoc 1 obj)))
pro (getreal "\nProzent ! ")
)
  (while
    (setq p2 (getpoint "\nZielpunkt ! ")
  pc (mapcar (function (lambda(a b)(/ (+ a b) 2))) p1 p2)
  di (distance p1 p2)
  he (rtos (+ (/ (* di pro) 100) ha) 2 2)
  )
    (entmake
      (list
(cons 0 "TEXT")
(cons 1 he)
(cons 8 (getvar "clayer"))
(cons 10 p2)
        (cons 40 0.15)
        (cons 50 0)
        (cons 7 "standard")
        )
      )
    (entmake
      (list
(cons 0 "DIMENSION")
(cons 100  "AcDbEntity")
(cons 67 0)
(cons 410  "Model")
(cons 8  (getvar "clayer"))
(cons 100  "AcDbDimension")
(cons 10 (trans (list (car p2)(cadr p2) 0.0) 1 0))
(cons 11 (trans (list (car pc)(cadr pc) 0.0) 1 0))
(cons 12 (list 0. 0. 0.))
(cons 6  "Continuous")
(cons 62 2)
(cons 70  33)
(cons 1  (strcat (rtos pro 2 1) "%"))
(cons 71  5)
(cons 72  1)
(cons 41  1.0)
(cons 42  di)
(cons 52 0)
(cons 53 0)
(cons 54  0)
(cons 3  "standard")
(cons 100  "AcDbAlignedDimension")
(cons 13 (trans (list (car p1)(cadr p1) 0.0) 1 0))
(cons 14 (trans (list (car p2)(cadr p2) 0.0) 1 0))
(cons 15 (list 0. 0. 0.))
(cons 16 (list 0. 0. 0.))
)
      )
    )
  (princ)
  )


------------------
Gruss Dirk

[Diese Nachricht wurde von cadplayer am 14. Mrz. 2012 editiert.]

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: 14. Mrz. 2012 14:34    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

in .Net kein Problem in Lisp NoWay.

Grüße Holger

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


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 14. Mrz. 2012 14: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

Kurze fiffige Antwort, muss aber nochmal nachhacken, was mit .net gemeint ist?

------------------
Gruss Dirk

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 14. Mrz. 2012 14:51    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 cadplayer 10 Unities + Antwort hilfreich

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 14. Mrz. 2012 15:24    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


debuggererror.jpg

 
Jetzt muss ich wahrscheinlich das Brett wechseln. Zum Abschluss vllt gefragt: wie startet man C# applikationen. Zum Bearbeiten habe ich mir mal die Entwicklungsumgebung "SharpDevelop" installiert. http://www.icsharpcode.net/OpenSource/SD/Download/
Da habe ich mal ein Beispiel HelloWorld1.csproj geladen.
Wenn ich da auf run Project tippe kommt "Debugger error" (Bild)

------------------
Gruss Dirk

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

Mailüfterl
Mitglied
Abgewandter Ingenieur und Softwarebastler


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

Beiträge: 15
Registriert: 12.08.2010

AutoCAD, Map und Civil, sowie BricsCAD

erstellt am: 14. Mrz. 2012 15: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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

mit Visual LISP kann man keine Werte am Fadenkreuz anzeigen lassen. Du könntest aber den neuen Wert dynamisch in der Zeichnung anzeigen lassen. Die Umsetzung ist allerdings nicht ganz trivial:

1. Du lässt den User den Text picken. Dein Programm speichert die gepickte Position und liest den Wert aus dem Text
2. Du fügst an der Curserposition einen neuen Text ein und liest fortan die Cursorposition mit grread
3. Deine Funktion errechnet fortan in einer Schleife den neuen Wert für den Text und weist ihn dem Text via active-X zu. Dasselbe gilt für die Position des Textes (vla-move)
4. Die Schleife wird mit der Eingabe von Return beendet. Der Text behält damit seinen letzten Wert und seine letzten Position

Ich habe einmal eine ähnliche Funktionalität entwickelt, bei der eine 3D-Konstruktion in Abhängigkeit der Position des Cursors verändert wird. Die Umsetzung ist aber, wie gesagt, nicht ganz trivial. Eine langjährige Erfahrung im Umgang mit Visual LISP auch unter der Nutzung von Active X wäre vorteilhaft.

Gruß, Mailüfterl

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: 14. Mrz. 2012 15: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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

ich nutze das VisualStudio von Microsoft - kenne mich also mit der von dir verwendeten Freeware nicht aus.
Einfach Laden und Starten geht in den meisten Fällen ohnehin nicht. Du kannst aber sicher einstellen, für welches Zielsystem compiliert werden soll. Außerdem musst du schauen, dass die AcBibos sauber eingebunden sind, und diese beim Kompilieren nicht in das Ausgabeverzeichnis kopiert werden.

Debuggen unter 64bit funktioniert nur insoweit, dass man den Programmablauf verfolgen kann - Änderungen am Code sind nicht möglich.

Grüße!
Holger

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


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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: 14. Mrz. 2012 15:46    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
Zum Abschluss vllt gefragt: wie startet man C# applikationen.

Befehl: NETLOAD

Grüße!
Holger

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


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Mailüfterl
Mitglied
Abgewandter Ingenieur und Softwarebastler


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

Beiträge: 15
Registriert: 12.08.2010

erstellt am: 14. Mrz. 2012 16: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 Nur für cadplayer 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von cadplayer:
...
Wenn ich da auf run Project tippe kommt "Debugger error" (Bild)
...
[/B]

Hallo,

in der Fehlmeldung steht, dass Du einen 64-bit-Prozessor einsetzt, dass 64-bit Prozesse im Augenblick aber nicht unterstützt werden. Dann wird Dir Hinweis zur Konfiguration gegeben, der Dir helfen könnte.

C# ist nicht auf die Schnelle zu erlernen. Der Aufwand ist um Einiges größer, als bei Visual LISP.

Es gibt zwei gute Bücher, die ich auch habe:

1. Zum Einstieg: http://www.amazon.de/Einstieg-Visual-2010-Editions-Computing/dp/3836216116/ref=sr_1_1?ie=UTF8&qid=1331737025&sr=8-1

2. Wenn Du damit "durch" bist, dann: http://www.amazon.de/Visual-2010-umfassende-H andbuch-Computing/dp/3836215527/ref=sr_1_fkmr0_1?ie=UTF8&qid=1331736943&sr=8-1-fkmr0

Gruß, Mailüfterl

[Diese Nachricht wurde von Mailüfterl am 14. Mrz. 2012 editiert.]

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 15. Mrz. 2012 06:54    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

Es würde mich schon reizen, mich mit C# zu beschäftigen. Vllt sollte ich mich aber ersteinmal mit grread beschäftigen, die Möglichkeit habe ich noch nicht in Erwägung gezogen. Danke bis hierhin für die Vorschläge (den Buchtips werde ich nachgehen).

------------------
Gruss Dirk

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

Dober Heinz
Mitglied
Technischer Zeichner


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

Beiträge: 1143
Registriert: 20.12.2002

erstellt am: 15. Mrz. 2012 09:41    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 cadplayer 10 Unities + Antwort hilfreich

Hier mal ein Link
http://www.theswamp.org/index.php?topic=12813.0

------------------
Heinz 

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 15. Mrz. 2012 09:54    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 cadplayer 10 Unities + Antwort hilfreich

... ich wußte doch, dass ich da schonmal was in meinen Favoriten abgelegt hatte:
http://www.lee-mac.com/grtext.html

Das sollte es sein.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 15. Mrz. 2012 11:38    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 hänge gerade mal an der while- Schleife fest, wie kann ich da rauskommen, wenn ich ein Text greife kommt wieder "wähle Text"
Code:

  (while
    (if
      (not
(and
  (while
    (setq obj (car (entsel "\nWähle Textobjekt ! ")))
    (if
      (= (cdr (assoc 0 (entget obj))) "TEXT")
      (setq obj (entget obj)
    p1 (cdr (assoc 10 obj))
    ha (atof (cdr (assoc 1 obj)))
    pro (getreal "\nProzent ! ")
    )
      )
    (princ "\nkein Text gewählt")
    )
    )
)
      (princ "\nnichts gewählt")
      )
    )


------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 15. Mrz. 2012 11:49    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 cadplayer 10 Unities + Antwort hilfreich

(while(not(and(setq obj (car (entsel "\nTextobjekt !")))
              (=(cdr(assoc 0 (entget OBJ)))"TEXT")
          )
      ) 
)

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 16. Mrz. 2012 08:59    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

@cadmium
Ich wollte mal eine Schleife versuchen (zwar idiotensicher - wenig nützlich), die einmal sagt
-wähle solang, bis etwas gewählt wird => "nichts gewählt"
-verifiziere ob ein Textobjekt gewählt wurde => "kein Text gewählt"
Es funktioniert zwar so einigermassen, mit dem Manko, wenn man ein anderes Objekt als einen Text wählt kommt => "kein Text gewählt nichts gewählt"

Code:

(while
  (not
    (and
      (setq obj (car (entsel "\nWähle Textobjekt !")))
      (not
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  )
  )
      )
    )
  (princ "\nnichts gewählt")
  )


@wronzky
Bei dem Beispiel von Lee-mac kratze ich mir die Haare raus. Was soll denn die var v?

Code:

(setq v
  '(
      (" ")
      ("."  45  46  55  56)
      ("0"  44  47 134 137  53 123  58 128)
      ("1"  44  48 124 125  56 136)
      ("2"  43  48  53  53  64  64  75  75  86  86  97  97 108 128 134 137 123 123)
      ("3"  53  53  44  47  58  88  95  97 108 128 134 137 123 123)
      ("4"  46  48  57 137  78  78  73  76  83  83  94  94 105 115 126 126)
      ("5"  53  53  44  47  58  88  94  97  93 133 134 138)
      ("6"  44  47  58  88  95  97  84  84  53 113 124 124 135 137)
     

Die Angaben zu grread sind auf den ersten Blick vielseitig

(grread [Spur] [Alle_Tasten [Cur_Typ]])

Spurr...?
Alle Tasten...?
Curtyp...?

Wenn ich beispielsweise nur grread eingebe, die Maus an einen Punkt bewege und enter gebe, wirft er mir schon einen code mit koordinaten aus. Zu was also dann die ganzen Parameter?

------------------
Gruss Dirk

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 16. Mrz. 2012 10:06    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
ich bin zwar nicht CADmium, aber bei Deiner WHILE-Schleife habe ich mal ein bißchen aufgeräumt, so würde ich das in etwa machen:
Code:

(defun c:test (  / obj)
  (while(setq obj (car (entsel "\nWähle Textobjekt (ENTER = Ende):")))
    (if(/=(cdr(assoc 0 (entget obj))) "TEXT")
      (alert  "Das war kein Text")
      (alert (strcat "Folgender Text wurde ausgewählt:\n\""
              (cdr(assoc 1 (entget obj)))"\"")))
    )
  (princ "\nEnde")
  )

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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: 13508
Registriert: 30.11.2003

.

erstellt am: 16. Mrz. 2012 10:16    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:

Bei dem Beispiel von Lee-mac kratze ich mir die Haare raus. Was soll denn die var v?

Code:

(setq v
   '(
      (" ")
      ("."   45  46  55  56)
      ("0"   44  47 134 137  53 123  58 128)
      ("1"   44  48 124 125  56 136)
      ("2"   43  48  53  53  64  64  75  75  86  86  97  97 108 128 134 137 123 123)
      ("3"   53  53  44  47  58  88  95  97 108 128 134 137 123 123)
      ("4"   46  48  57 137  78  78  73  76  83  83  94  94 105 115 126 126)
      ("5"   53  53  44  47  58  88  94  97  93 133 134 138)
      ("6"   44  47  58  88  95  97  84  84  53 113 124 124 135 137)
     


v enthält die Vektoren der Linien , mit denen das Zeichen am Cursor dargestellt wird

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 16. Mrz. 2012 10:19    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
Zitat:
...Was soll denn die var v?...

Das ist die Variable, die die Darstellung aller Buchstaben im Vektorformat enthält, die mit grvecs am Bildschirm gezeichnet werden.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 16. Mrz. 2012 10: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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
ich nochmal, anbei ein Beispiel, wie man ohne die Vektordarstellung auskommt. Einfach Texte für X und Y erzeugen und während der Grread-Schleife die Werte und Positionen aktualisieren.
Code:

(defun c:TextXY ( / OBJX OBJY PKT)
  (vl-load-com)
  (if(setq pkt (getpoint "\nStartPunkt angeben:"))
    (progn
      (setq objX(JB_TextXY:Text pkt)
            objY (cadr objX)
            objX (car objX))
      (JB_TextXY:Grread pkt objX objY))
     
      )
    )


;;;Text erzeugen mit XY-Koordinaten
(defun JB_TextXY:Text (pkt / OBJX OBJY)
  (entmake (list
            '(0 . "TEXT") (cons 10 (mapcar '+ pkt '(2.5 0.0)))
            '(40 . 2.5) (cons 1 (strcat "X=" (rtos (car pkt)2 3)))'(50 . 0.0)
            '(71 . 0) '(72 . 0) '(11 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(73 . 0)))
  (setq objX (entlast))

  (entmake (list
            '(0 . "TEXT") (cons 10 (mapcar '+ pkt '(2.5 -4.0)))
            '(40 . 2.5) (cons 1 (strcat "Y=" (rtos (cadr pkt)2 3)))'(50 . 0.0)
            '(71 . 0) '(72 . 0) '(11 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(73 . 0)))
  (setq objy (entlast))
  (list objX objY))


;;;Grread Funktion und Texte aktualisieren
(defun JB_TextXY:Grread (pkt objX objY / PKTGR)
  (while (member(car (setq pktgr (grread 't 5 0)))'(5 12));25 2))
    ;;;X schieben
    (vla-move (vlax-ename->vla-object objX) (vlax-3d-Point pkt)
      (vlax-3d-Point(cadr pktgr)))
    ;;;X aktualisieren
    (vla-put-TextString (vlax-ename->vla-object objX)
      (strcat "X="(rtos (car(cadr pktgr))2 3)))
    ;;;Y schieben
    (vla-move (vlax-ename->vla-object objY)(vlax-3d-Point pkt)
      (vlax-3d-Point(cadr pktgr)))
    ;;;Y aktualisieren
    (vla-put-TextString (vlax-ename->vla-object objY)
      (strcat "Y="(rtos (car(cadr pktgr))2 3)))
    (setq pkt (cadr pktgr))))
 


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 16. Mrz. 2012 11: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

Vektorendarstellung von Buchstaben und Zahlen  Werden die "Zeichen" da erst neu definiert...

@Jörn:

Echt grosszügig mir mit deiner Funktion einen kompletten Einblick von grread zu bekommen.
Da wird also "doppelt" die Koordinate ermittelt. Einmal mit grread zur Anzeige am Mauszeiger und einmal mit getpoint, wenn der Punkt gesetzt wird.

Super - tausend pluspunkte

------------------
Gruss Dirk

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 16. Mrz. 2012 11:24    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
das mit dem Start mit Getpoint kann man dann (wenn es nicht nur eine Testroutine ist) auch in die GRREAD-Schleife verlegen.
Einfach abfragen, ob der Text schon vorhanden ist:

(if objX
  (dann aktualisiere)
  (sonst erstelle den Text)
)

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 20. Mrz. 2012 09: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

Jetzt habe ich nochmal einen anderen Weg probiert und stehe vor dem Problem, dass mir der Text entweder nur einmal angezeigt und erzeugt wird

oder

wenn ich das Textobjekt in der while-schleife lasse überall nach der Bewegung des Mauscursor erzeugt wird

Wie schaffe ich es, dass der Text zwar angezeigt aber erst erzeugt wird wenn ich einen punkt anklicke

Code:

(while
  (not
    (and
      (setq obj (car (entsel "\nWähle Textobjekt !")))
      (not
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  )
  )
      )
    )
  (princ "\nnichts gewählt")
  )

  (setq obj (entget obj)
pt (cdr (assoc 10 obj))
ha (atof (cdr (assoc 1 obj)))
pro (getreal "\nProzent ! ")
)
;--------------------------------------------------------------------------------

; uses grread function

    (if pt
    (while
      (member (car (setq ptgr (grread 't 5 0))) '(5 2))
      (setq di (distance pt (cadr ptgr)))
      (setq he (rtos (+ (/ (* di pro) 100) ha) 2 2))
      (setq pc (mapcar (function (lambda(a b)(/ (+ a b) 2))) pt (cadr ptgr)))
     
      ) ; Klammern weglasse
      ) ; wird text entlang der Maus erzeugt

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

; entmake textobjekt
     
     
(entmakex
  (list
    '(0 . "TEXT")
    (cons 10 (cadr ptgr))
    '(40 . 0.15)
    (cons 1 he)
    '(50 . 0.0)
    '(11 0.0 0.0 0.0)
    '(210 0.0 0.0 1.0)
    '(71 . 0)'(72 . 0)'(73 . 0)
    )
)
     
      (setq obj (vlax-ename->vla-object (entlast)))
     
     


------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 20. Mrz. 2012 09: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 Nur für cadplayer 10 Unities + Antwort hilfreich

in der while-schleife musst du bis zum KLICK den erzeugten Text mit entdel auch wieder löschen

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 20. Mrz. 2012 11:34    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 möchte eigentlich, dass der Text bis zum klicken am Bildschirm angezeigt wird. Eine if-schleife würde das ja vermeiden bzw. ich klicke Punkte an und es wird dann immer ein neuer Text erzeugt.

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 20. Mrz. 2012 12:49    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 cadplayer 10 Unities + Antwort hilfreich

na ich meinte das vom Prinzip her so :

(defun C:COORDCURSOR (/ P TXTOBJ TXTMAKE)
  (defun TXTMAKE (PKT)
    (entmake (LIST
              '(0 . "TEXT")
              '(8 . "0")           
              (CONS 10 PKT)
              (cons 40 (getvar "TEXTSIZE"))
              (cons 50 (getvar "ANGDIR"))
              (CONS 1 (vl-princ-to-string PKT))
            )
    )
    (entlast)
  ) 
  (while (= 5 (car (setq P (grread 't 5 0))))
    (if TXTOBJ (entdel TXTOBJ))     
    (setq TXTOBJ (TXTMAKE (cadr P)))
  ) 
)

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 20. Mrz. 2012 13:36    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

Ah da liegt mein Denkfehler - mir ist klar das die Funktion TXTMAKE wie getpoint arbeitet. Aber was macht sie genau
1) sie erzeugt ein Textentity
2) da bin ich unsicher mit "defun ...(PKT)" was muss PKT sein (finde ich nirgens definiert)
3) Am Ende steht da nochmal entlast muss irgendwie in Verbindung mit PKT stehen ?

Sonst ist alles klar - also mir Unqualifizierten unklar

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 20. Mrz. 2012 13:54    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 cadplayer 10 Unities + Antwort hilfreich

TXTMAKE arbeitet nicht wie getpoint ! .. die Funktion erzeugt einen Text an den Koordinaten von PKT[LIST(REAL REAL REAL)] mit diesen als Textstring und gibt dieses gerade erzeugte Textobjekt zurück...damit ich beim nächsten durchlauf der Whileschleife zugriff zum löschen drauf habe ....

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 20. Mrz. 2012 14:49    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

@ cadmium:
Danke für deine Mühe, ich versteh´s nicht ganz (brauch da noch ein wenig Zeit)

@alle:
Danke für eure Tips, ich habe nun einige Werkzeuge mit grread umzugehen (muss da noch en bissel spielen)

------------------
Gruss Dirk

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 21. Mrz. 2012 06:19    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
ich habe Dir CADmiums Beispiel nochmal mit Kommentaren versehen und habe die Funktiondefinition für TXTMAKE separat nach der Funktion COORDCURSER definiert (vielleicht hat es Dich verwirrt, daß die Definition innerhalb der Funktion COORDCURSER vorhanden war).

Code:

(defun C:COORDCURSOR (/ P TXTOBJ TXTMAKE)
 
  (while (= 5 (car (setq P (grread 't 5 0))))
    ;;;(cadr P) ist die Rückgabe von GRREAD (Curserkoordinate)
    (setq PKT (cadr P))
    ;;;wenn TextObjekt vorhanden, dann löschen
    (if TXTOBJ (entdel TXTOBJ))
    ;;;neuen Text erzeugen, übergeben wird die Variable PKT
    (setq TXTOBJ (TXTMAKE PKT))
    ;;;der Rückgabewert der Funktion TXTMAKE wir der Variablen
    ;;;TXTOBJ zugewiesen, das ist das TextObjekt (entlast)

  )
)

(defun TXTMAKE (PKT / )
  ;;;neuen Text erzeugen mit Curserkoordinate PKT
  (entmake
    (LIST
      '(0 . "TEXT")
      '(8 . "0")
      (CONS 10 PKT)
      (cons 40 (getvar "TEXTSIZE"))
      (cons 50 (getvar "ANGDIR"))
      (CONS 1 (vl-princ-to-string PKT))
      )
    )
  ;;;eine Funktion hat grundsätzlich einen Rückgabewert
  ;;;in diesem Fall das zuletzt erstellte TextObjekt

  (entlast)
  )


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 21. Mrz. 2012 08:22    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

(setq PKT (cadr P))

hat zusätzlich noch einen Vorteil gegenüber cadmiums Lösung gebracht. Darauf bin ich nicht gekommen - nach deiner Beschreibung ist es mir jetzt einleuchtend. Ich habe einfach noch nicht die Sprache von Autolisp intus. Mir kommen manche Dinge unendlich kompliziert vor, obwohl ich alle Funktionen verstehe, aber die Verbindung halt nicht. Das ist wie als wenn einer mit dir spricht, du alle Wörter verstehst, aber halt nicht den Gedanke.
Ich rätsle mich manchmal durch, stosse auf ein Problem - was ich nicht verstehe - dann schau ich nach und komme wieder auf ein neues Problem, das eiert sich so weiter, bis ich eigentlich nix weiss.
Danke Euch komme ich schneller auf die Sprünge - echt super, ich schätze sehr eure Mühe - Danke!

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 21. Mrz. 2012 08:41    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
(setq PKT (cadr P))

hat zusätzlich noch einen Vorteil gegenüber cadmiums Lösung gebracht.


Welchen ?

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 21. Mrz. 2012 09:02    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 kann dadurch immerwieder einen neuen Text erzeugen, ohne das der alte gelöscht wird
Vorteil ist dem Fall Ansichtssache 

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 21. Mrz. 2012 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 Nur für cadplayer 10 Unities + Antwort hilfreich

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 21. Mrz. 2012 09: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

Wenn ich die Funktion mehrmals aufrufe wird immer der erzeugte Text in der Zeichnung geändert, im Unterschied zu Jörn wird immer ein neuer Text erstellt.

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 21. Mrz. 2012 09:59    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 cadplayer 10 Unities + Antwort hilfreich

versteh ich immer noch nicht .... das einzige was Jörn anders gemacht ist (cadr P) in der Var PKT zwischenzuspeichern ... und die Funktion TXTMAKE auszugliedern , auch wenn er sie als lokale Variable drin gelassen hat, wodurch die Funktion C:COORDCURSOR eigentlich meckern müßte "TXTMAKE" nicht gefunden .... aber nunja

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 21. Mrz. 2012 10:06    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
vielleicht noch ein kleine Anmerkung:
(setq PKT (cadr P))

Ich habe diese Variablenzuweisung nur gemacht, damit es ein bißchen deutlicher wird, was passiert. Technisch gesehen ist sie völlig unnötig, im Gegenteil, wirst Du zwar bei dem kleinen Beispiel nicht merken, aber jede Zuweisung kostet Zeit.

Weil in meinem Falle der Wert der Variablen PKT und der Wert von (cadr P) identisch sind kannst Du entweder PKT oder (cadr P) an die Funktion TXTMAKE übergeben. Der Funktion ist es egal, denn dort wird der übergebene Wert als PKT deklariert, aber nur innerhalb der Funktion.

Wenn ich Dich noch mehr verwirrt habe tut es mir leid, aber besser erklären kann ich es nicht.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 29. Mrz. 2012 09:38    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

Jetzt bin ich mal den Buchtips nachgegangen und habe mir das Einstiegsbuch in Visual C# zugelegt, was mir beim Durchblättern auffällt, dass überhaupt nicht auf die Schnittstelle Autocad eingegangen wird. Sondern erstmal ganz allgemein erklärt wird wie die Sprache funktioniert.
Gibt es ähnlich wie bei VBA ein Handbuch was gleich auf die Kombination Autocad mit Visual C# eingeht. Ich habe ja nicht vor, erst Windowsprogramme zu schreiben, um dann zu Autocad überzugehen.

------------------
Gruss Dirk

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: 13508
Registriert: 30.11.2003

.

erstellt am: 29. Mrz. 2012 09:44    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 cadplayer 10 Unities + Antwort hilfreich

Nein , gibt es IMHO nicht  ... jedenfalls nicht auf deutsch ... ACAD-Programmierung ist in der Hinsicht eh ne Insel mit wenig Einwohnern ( sprich Programmierern), so das die Bücher wie das "Autolisp-Kochbuch" "Autocad programmieren mit VBA" oder das "Autocad-Objekte-Buch" nur in geringer Stückzahl aufgelegt wurden und es auch IMHO nie Nachauflagen gab.

Aber wenn du C# kannst und das Klassen und Objectmodell von ACAD kennst , ist das Verbinden von beiden ja nicht mehr das Problem. Ansonsten gilt für jede Sprache .. lernen tut man sie nur durch sprechen 

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

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: 29. Mrz. 2012 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 Nur für cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
... Ich habe ja nicht vor, erst Windowsprogramme zu schreiben, um dann zu Autocad überzugehen. ...

ähm sorry, das ist wohl aber der sinnvolle Weg.

Also ich habe schon häufig die Erfahrung gemacht, dass es absolut sinnvoll ist, die Basics zu verinnerlichen. Dieses Wissen ist unerläßlich und erlaubt einem das Adaptieren auf komplexe Aufgabe. Und sorry, bei C#.Net bist du mehr in der Windowswelt unterwegs, als in AutoCAD.

Du hast es beim C#.Net mit einer gänzlich objektorientierten Programmiersprache zu tun. Wenn du dazu die Basics nicht weißt, kannst du weder das AutoCAD-ObjectModell verstehen noch anwenden.

Die Basics sind mühsam, womöglich langweilig aber ganz sicher nicht unnötig. Fang am Anfang an und nicht mittendrinn!

Grüße!
Holger

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


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 29. Mrz. 2012 10:02    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

Danke für die Ratschläge, dem werde ich nachgehen!

------------------
Gruss Dirk

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

Mailüfterl
Mitglied
Abgewandter Ingenieur und Softwarebastler


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

Beiträge: 15
Registriert: 12.08.2010

AutoCAD, Map und Civil, sowie BricsCAD

erstellt am: 29. Mrz. 2012 12:18    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

ja das trifft zu. Auf die AutoCAD-Programmierung wird in den empfohlenen Büchern nicht eingegangen. Mir ist auch kein Buch bekannt, in dem das geschieht. Möglicherweise existiert auch keines. Das schadet am Anfang jedoch nicht, da man sich durchaus zunächst Grundkenntnisse der C#-Programmierung aneignen sollte, bevor man versucht sie auf die AutoCAD-Objekte anzuwenden.

Auf den ADN-Seiten von Autodesk gibt es ein wenig Material zur Programmierung von AutoCAD mit C#. Dieser Hinweis dürfte Dir allerdings wenig nützlich sein, wenn Du keinen Zugang dazu hast.

Ich würde an Deiner Stelle C# erst einmal verschieben, zumal es wesentlich anspruchsvoller ist, weshalb Du weniger schnell zu brauchbaren Ergebnissen kommst, als mit VLISP. Darüber hinaus nützt Dir die Kenntnis der C#-Programmierung wenig, wenn Du die AutoCAD-Objekte nicht kennst - und für Deine dynamische Anzeige gibt es ja eine Lösung, wenn sie auch anders ist, als ursprünglich von Dir erdacht, so ist sie doch nicht weniger elegant.

Gruß, Mailüfterl

[Diese Nachricht wurde von Mailüfterl am 29. Mrz. 2012 editiert.]

[Diese Nachricht wurde von Mailüfterl am 29. Mrz. 2012 editiert.]

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 30. Mrz. 2012 08:02    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

Ja Mailüfterl, ich hatte vielleicht eine völlig andere Vorstellung von C# - interessant finde ich jedoch, dass es hier die Möglichkeit gibt extern auf die Zeichnungsdatenbank einzugreifen und Projektübergreifend verschiedene Applikationen anzusprechen. Das es wesentlich anspruchsvoller gegenüber Auto- und Visual Lisp ist, war mir klar. Ich gehe davon aus, mich längerfristig in die Materie einzuarbeiten und einige Foren gibt es auch, die Beispiele liefern. Was meinst du jedoch mit ADN-Seiten von Autodesk, mit Zugang ist wahrscheinlich nicht das gewöhnliche account des SubscribtionCenter gemeint oder?

------------------
Gruss Dirk

[Diese Nachricht wurde von cadplayer am 30. Mrz. 2012 editiert.]

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: 30. Mrz. 2012 08: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 cadplayer 10 Unities + Antwort hilfreich

ADN-Autodesk-Developer-Network
.. ist ein spezieller Bereich, in dem die Entwickler
(1) Zugriff auf die verschiedensten Autodesk-Produkte haben ..
(2) Support-Anfragen stellen können ..
(3) Support-Lösungen veröffentlicht sind.

Für Firmen, die Applikationen professionell entwickeln, ist besonders der Punkt(1) wichtig, da man ja nicht alle Programmversionen kaufen kann. Der Support ist ok, manchmal recht langsam. Bei meinen Fragen habe ich aber meist nur die Anerkennung als Bug bekommen, der dann in die Liste der Bug's aufgenommen wird. Was dann allerdings die gleiche Wirkung hat, wie die Bug-Reports der normalen Anwender.

Für den Normalanwender, der nur für sich Programme schreibt ist der ADN-Zugang nicht wirklich wichtig. Die verschiedenen Foren geben auch eine gute Hilfestellung bei Problemen - der direkte ADN-Support-Zugang ist also nicht wirklich erforderlich.

Grüße!
Holger

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


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 30. Mrz. 2012 08:57    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

Danke Holger für die Infos

Punkte sind an alle vergeben - Herzlichen Dank für die Anregungen. Geniales Forum mit Kompetens.

Es lohnt sich auch mal auf anderen Seiten zu forschen. Lee-Mac´s Seite finde ich einfach genial, was der alles aus Lisp rausholt grenzt an Wunder. http://www.lee-mac.com/odbxbase.html


------------------
Gruss Dirk

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

Mailüfterl
Mitglied
Abgewandter Ingenieur und Softwarebastler


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

Beiträge: 15
Registriert: 12.08.2010

AutoCAD, Map und Civil, sowie BricsCAD

erstellt am: 30. Mrz. 2012 11:41    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
... interessant finde ich jedoch, dass es hier die Möglichkeit gibt extern auf die Zeichnungsdatenbank einzugreifen ..


Hallo, das macht Du auch jetzt schon innerhalb von VLISP mit ActiveX. Eine externe Windows-Applikation kann auf dieselbe Weise auf die AutoCAD-Zeichnungsdatenbank zugreifen.

Ebenso kannst Du umgekehrt mit ActiveX in VLISP nicht nur auf AutoCAD zugreifen sondern auf andere Windows-Applikationen, die auf dem Arbeitsplatz verfügbar sind.Du könntest so z.B. die Koordinatenpunkte, die Deine Funktion hier errechnet und konstruiert hat, nach Excel oder nach Access schreiben.

Gruß, Mailüfterl

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