Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  LSP als Funktion mit Eingangswerten?

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:  LSP als Funktion mit Eingangswerten? (1646 mal gelesen)
FeR
Mitglied



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

Beiträge: 150
Registriert: 27.10.2003


WinXP latest SP
AutoCAD 2008+germanExpressTools
SofiCAD, ProVI
HP xw4400 CoreDuo 2.4GHz 2GB RAM
NVIDIA Quadro NVS 285

erstellt am: 12. Jul. 2005 18:43    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

Klingt jetzt vielleicht dumm aber es geht folgende Aufgabenstellung:

Ich starte einr Lsp -Routine und gebe in der selben Kommandozeile auch Argummente mit.
Vielleicht ist es verständlicher wenn ich es in ein Beispiel packe:
Ich möchte z.B o4 eingeben für offset um 4 units ohne das lästige o [Bestätigen] 4 [Bestätigen].
Mir passiert die Eingabe beim schnellen Tippen nur zu oft :-(

Versteht mich einer?
Ich denke es wird nicht gehen, ich würde mich gerne vom Gegenteil überraschen lassen. :-)


------------------
mfg
FeR
"gefundene Rechtschreibfehler dürfen behalten werden."

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: 12. Jul. 2005 19:01    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 FeR 10 Unities + Antwort hilfreich

Hallo FeR!
Wie wäre es mit o [Leerzeichen] 4 [Leerzeichen]?

Grüsse,
Henning

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

  http://www.voxelman.de

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 12. Jul. 2005 19: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 FeR 10 Unities + Antwort hilfreich

Hi,

also mir (was jetz nichts zu bedeuten hat) fällt mit weniger schreiben eher nichts dazu ein - das wird alles länger (ausser du definierst für jeden Fall der vorkommen kann ein defun C:...

Code:

(defun c:_o4 () ;;; den _ rausnehmen
  (command "_offset" "4")
)

Nur zielführend ist das in meinen Augen eher nicht...

Die andere Möglichkeit wäre mit Parameter mitschicken... dadurch wirds aber nicht kürzer oder einfacher...

Code:

(defun ox (abst)
  (command "_offset" abst)
)

Aufruf mit (ox xy) - nur bringts halt nix...

------------------
Grüsse

Thomas

[Diese Nachricht wurde von tunnelbauer am 12. Jul. 2005 editiert.]

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 12. Jul. 2005 19:05    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 FeR 10 Unities + Antwort hilfreich

@wronzky

schon mal Leerzeichen in der Befehlszeile in AutoCAD eingegeben ?

------------------
Grüsse

Thomas

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: 12. Jul. 2005 19: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 FeR 10 Unities + Antwort hilfreich

einer als ACAD-Kommando definierten Funktion .. also mit (defun c:FUNCNAME(/).... können keine Parameter mitgegeben werden!

Es geht nur (defun FUNCNAME (VAR1 / ) ..) mit z.B: (FUNCNAME 5) aufzurufen .. da haste dann die Klammern mit bei!!!

Man kann aber innerhalb der Funktion Vorgaben setzten
z.B.
(or (setq VAR1 (getint "\nZahl eingeben<4>:"))
    (setq VAR1 4)
)
bei "Ab-Entern" der getint-Funktion liefert dieselbe nil und der 2.Zweig von or wird abgearbeitet...

------------------
- 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: 12. Jul. 2005 19: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 FeR 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tunnelbauer:
@wronzky

schon mal Leerzeichen in der Befehlszeile in AutoCAD eingegeben ?


Mache ich dauernd!

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

  http://www.voxelman.de

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: 12. Jul. 2005 20: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 Nur für FeR 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADmium:
einer als ACAD-Kommando definierten Funktion .. also mit (defun c:FUNCNAME(/).... können keine Parameter mitgegeben werden!


Doch kann man, macht nur keinen Sinn!
(defun c:test (a / ) (alert a))
(c:test "Hallo!")

Henning

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

  http://www.voxelman.de

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: 12. Jul. 2005 20: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 FeR 10 Unities + Antwort hilfreich

So, nun die ultimative Lösung:
in die acad.lsp eintragen:
Code:

(setq za 1)
(while (< za 100)
  (eval (read (strcat "(defun c:_O" (itoa za) " () (command \"_offset\" " (itoa za) " ))")))
  (setq za (1+ za))
)


(den "_" nach c: rausnehmen!)

definiert die Funktionen O1 O2...O99

Grüsse, Henning

PS: wie kann man eigentlich verhindern dass c: gefolgt von "O" zu c  wird? der haken Smilies in diesem Beitrag deaktivieren.funktioniert irgendwie nicht.


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

  http://www.voxelman.de

[Diese Nachricht wurde von wronzky am 12. Jul. 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: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Jul. 2005 20: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 FeR 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von wronzky:
Doch kann man, macht nur keinen Sinn!
(defun c:test (a / ) (alert a))
(c:test "Hallo!")

Henning




Tja, da hab ich mich etwas unkorrekt ausgedrückt. Mir ging's  um den Aufruf als ACAD-Befehl.. TEST  und Enter .. das wird nicht funzen

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

FeR
Mitglied



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

Beiträge: 150
Registriert: 27.10.2003


WinXP latest SP
AutoCAD 2008+germanExpressTools
SofiCAD, ProVI
HP xw4400 CoreDuo 2.4GHz 2GB RAM
NVIDIA Quadro NVS 285

erstellt am: 13. Jul. 2005 07:58    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

Vielen Dank für die vielen Antworten.
Ich arbeite überall wo es geht mit Leerzeichen als Eingabe da die Taste einfach so schöööön groß ist 

@CADmium
Danke für den Parametertipp!
@wronzky
witziger Lösungsansatz!

Nochmals vielen Dank!

------------------
mfg
FeR
"gefundene Rechtschreibfehler dürfen behalten werden."

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 13. Jul. 2005 18: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 FeR 10 Unities + Antwort hilfreich

Hab ich was falsch verstanden?

Code:

(defun c:sim_arg( / a)
  (setq a(getreal))
  ; do something
  (sqrt a) ; just an example
)

; Auf der Kommaandozeile mit Leerstelle eingeben:

Command: sim_arg 4
2.0


Will man die Leerstellen weghaben, bleiben aber nur zwei Möglichkeiten, nämlich a) alle erdenklichen Funktionen vorher erzeugen, wie Wronzky vorgeschlagen hat, oder b) das Errorhandling so verbiegen, dass jede benötigte Funktion noch schnell geschrieben wird, wenn man sie aufruft.

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 13. Jul. 2005 editiert.]

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: 14. Jul. 2005 11: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 FeR 10 Unities + Antwort hilfreich

@mapcar
das mit dem errorhandler geht doch meines erachtens nicht, da ja kein Lisp-Fehler auftaucht, wenn Autocad meldet "Unbekannter Befehl".
Daher denke ich der variabelste Weg ist über den Reactor vlr-command-reactor:vlr-unknownCommand. etwa so:
Code:

(defun c:init-build-command ()
  (vl-load-com)
  (if (not (reactor-is-active '((:vlr-unknownCommand . build-command)) ':vlr-command-reactor))
    (setq build-command-reactor (vlr-command-reactor "my-new-command" '((:vlr-unknownCommand . build-command))))
  )
)


(defun reactor-is-active (funktion typ / aktive_reactors result)
  (setq aktive_reactors (cdar (vlr-reactors typ)))
  (foreach n aktive_reactors
    (if (equal (vlr-reactions n) funktion) (setq result t))
  )
  (eval result)
)


(defun build-command (reaktor parameter / command_to_build car_string cdr_string)
  (setq command_to_build (car parameter))
  (setq car_string (strcase (substr command_to_build 1 1)))
  (setq cdr_string (strcase (substr command_to_build 2)))
  (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
  (cond
    ((= car_string "O");offset
    (vla-SendCommand thisdrawing (strcat "_offset " cdr_string " "))
    )
  )
)


Wenn man jetzt O2 eingibt, wird der Reactor "unbekannter Befehl" ausgelöst, und an Autocad der Befehl "_offset" zurücgeschickt.
Viel Konstrukt, aber es geht!

Grüsse, Henning

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

  http://www.voxelman.de

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 14. Jul. 2005 16: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 FeR 10 Unities + Antwort hilfreich

Henning, eine richtig schöne Lösung, Kompliment! Mit "Errorhandling" meinte ich auch nicht unbedingt die *error*-Funktion, sonder den Sachverhalt im Allgemeinen. Üer die Umsetzung hatte ich mir allerdings noch nicht den Kopf zerbrochen. Letztendlich sind ja die ganze AutoLoad-Geschichte und auch ein Reaktor wie dieser Bestandteil des Errorhandlings.

Freut mich, dass du als Kompetenzverstärker hier dazu gestoßen bist;-)

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

FeR
Mitglied



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

Beiträge: 150
Registriert: 27.10.2003


WinXP latest SP
AutoCAD 2008+germanExpressTools
SofiCAD, ProVI
HP xw4400 CoreDuo 2.4GHz 2GB RAM
NVIDIA Quadro NVS 285

erstellt am: 14. Jul. 2005 16: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

@wronzky
wow! cool... 10 Units sind unterwegs!
Fettes LOB

------------------
mfg
FeR
"gefundene Rechtschreibfehler dürfen behalten werden."

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: 19. Jul. 2005 11:29    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 FeR 10 Unities + Antwort hilfreich

Nach dem Lob des Meisters war ich etwas beflügelt, und hab' in einer freien Minute  noch versucht weitere Befehle, die es nicht gibt mit dem Reactor abzufangen. Wie z.B.
S[zahl] für _scale,
M[zahl] für _move (in X-Richtung) und
N[zahl] für _move (in Y-Richtung).
Ich denke, mit dem code kann jetzt jeder weiterbasteln, bis es gar keinen unbekannten Befehl mehr gibt.
Code:
(defun c:init-build-command ()
  (vl-load-com)
  (if (not (reactor-is-active '((:vlr-unknownCommand . build-command)) ':vlr-command-reactor))
    (setq build-command-reactor (vlr-command-reactor "my-new-command" '((:vlr-unknownCommand . build-command))))
  )
)


(defun reactor-is-active (funktion typ / aktive_reactors result)
  (setq aktive_reactors (cdar (vlr-reactors typ)))
  (foreach n aktive_reactors
    (if (equal (vlr-reactions n) funktion) (setq result t))
  )
  (eval result)
)


(defun build-command (reaktor parameter / command_to_build car_string cdr_string ss p1 sslen zaehler thisdrawing)
  (setq command_to_build (car parameter))
  (setq car_string (strcase (substr command_to_build 1 1)))
  (setq cdr_string (strcase (substr command_to_build 2)))
  (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
  (cond
    ((= car_string "O");offset
    (vla-SendCommand thisdrawing (strcat "_offset " cdr_string " "))
    )
    ((= car_string "M");move (x-direction)
    (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing)))))))
    (setq sslen (vla-get-count ss))
    (setq zaehler 0)
    (vla-StartUndoMark thisdrawing)
    (while (< zaehler sslen)
      (vla-move (vla-item ss zaehler) (vlax-3d-point '(0 0 0)) (vlax-3d-point (list (atof cdr_string) 0 0)))
      (setq zaehler (1+ zaehler))
    )
    (setq ss (vla-delete ss))
    (vla-endUndoMark thisdrawing)
    )
    ((= car_string "N");move (y-direction)
    (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing)))))))
    (setq sslen (vla-get-count ss))
    (setq zaehler 0)
    (vla-StartUndoMark thisdrawing)
    (while (< zaehler sslen)
      (vla-move (vla-item ss zaehler) (vlax-3d-point '(0 0 0)) (vlax-3d-point (list 0 (atof cdr_string) 0)))
      (setq zaehler (1+ zaehler))
    )
    (setq ss (vla-delete ss))
    (vla-endUndoMark thisdrawing)
    )
    ((= car_string "S");scale
    (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing)))))))
    (setq sslen (vla-get-count ss))
    (if (> sslen 0) (setq p1 (vlax-3d-point (getpoint "Basispunkt angeben:\n"))))
    (setq zaehler 0)
    (vla-StartUndoMark thisdrawing)
    (while (< zaehler sslen)
      (vla-scaleentity (vla-item ss zaehler) p1 (atof cdr_string))
      (setq zaehler (1+ zaehler))
    )
    (setq ss (vla-delete ss))
    (vla-endUndoMark thisdrawing)
    )
  )
)



Grüsse, Henning

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

  http://www.voxelman.de

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