Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Befehl _.copy

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:   Befehl _.copy (1177 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: 13. Nov. 2008 15:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich verwende den AutoCAD-Befehl _.copy in meiner VLX-Anwendung. Dabei habe ich jetzt festgestellt, dass der Befehl mit command aufgerufen andere Auswahlmöglichkeiten bietet als mit dem Aufruf _.copy.

--------------

Aufruf mit (command "_.copy") ergibt im Textfenster:

Befehl: (command "_.copy")
nil

Objekte wählen: Entgegengesetzte Ecke angeben: 2 gefunden

Objekte wählen:

Basispunkt angeben oder [Verschiebung/Mehrfach] <Verschiebung>:

--------------------

Aufruf mit _.copy ergibt im Textfenster:

Befehl: _.copy

Objekte wählen: Entgegengesetzte Ecke angeben: 2 gefunden

Objekte wählen:

Aktuelle Einstellungen:  Kopiermodus = Mehrfach

Basispunkt oder [Verschiebung/mOdus] <Verschiebung>:

-----------

Wieso hat der Befehl _.copy je nach Aufruf andere Auswahlmöglichkeiten?

Danke im Voraus und viele Grüße
Bernd

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: 13. Nov. 2008 16: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 Bernd10 10 Unities + Antwort hilfreich

Dumme Frage: Wie rufst du denn den Befehl in einer VLX nur mit Copy auf (ohne command)?

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

Thomas

Korrekturen zum Kochbuch AutoLISP

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: 19657
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 13. Nov. 2008 17:15    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

@Tunnelbauer
wohl garnicht, aber der Unterschied fiel auf und nun wäre es interessant zu wissen warum er besteht.
("_.copy" kennt man ja durch das Arbeiten mit der normale Arbeitsoberfläche)

@Bernd
Der _.copy-Befehl funktionierte bis/ab 2006 anders: Ab 2006 hat der normale
Copy-Befehl automatisch eine Mehrfach-Kopie Funktion, vor 2006 war das
nicht so.
Früher war es so wie es die Command-Variante zeigt! "alte" Lisp´s sind
somit auch heute noch lauffähig, auch wenn sie Command "_.copy" nutzen..
Warum es sich überhaupt anders verhält: Keine Ahnung, aber positiver
Effekt für alle Command-Holzhacker         

PS: Du baust aber nicht wirklich ein (command "_.copy") in dein Prog ein
sondern da steht dann schon noch mehr mit in der Klammer oder ??


------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

[Diese Nachricht wurde von cadffm am 13. Nov. 2008 editiert.]

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: 14. Nov. 2008 08: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

Hallo Thomas,

Zitat:
Original erstellt von tunnelbauer:
Dumme Frage: Wie rufst du denn den Befehl in einer VLX nur mit Copy auf (ohne command)?

ich habe zunächst den Unterschied bei der Verwendung meiner VLX-Anwendung festgestellt. Um es dann näher zu untersuchen, habe ich (command "_.copy") und auch _.copy in der Befehlszeile eingegeben.

Gruß Bernd


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

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

erstellt am: 14. Nov. 2008 08:37    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 cadffm,

Zitat:
Original erstellt von cadffm:

Der _.copy-Befehl funktionierte bis/ab 2006 anders: Ab 2006 hat der normale
Copy-Befehl automatisch eine Mehrfach-Kopie Funktion, vor 2006 war das
nicht so.
Früher war es so wie es die Command-Variante zeigt! "alte" Lisp´s sind
somit auch heute noch lauffähig, auch wenn sie Command "_.copy" nutzen..
Warum es sich überhaupt anders verhält: Keine Ahnung, aber positiver
Effekt für alle Command-Holzhacker           :)

danke für diese Information. Sowas habe ich befürchtet. Wie kann ich dann aber den aktuellen Befehl in meinem Lisp abbilden?

Zitat:
Original erstellt von cadffm:

PS: Du baust aber nicht wirklich ein (command "_.copy") in dein Prog ein
sondern da steht dann schon noch mehr mit in der Klammer oder ??

ich verwende den Befehl _copy erweitert, da ich nach dem Kopieren noch die EEDs der kopierten Objekte aktualisieren muss.

Gruß Bernd

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: 19657
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 14. Nov. 2008 09: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 Nur für Bernd10 10 Unities + Antwort hilfreich

Verstehe ich jetzt nicht ganz <und du mein "PS:" nicht  >
Der (Command _.copy) Befehl zeigt dir doch die Option
"Mehrfach" (_m=multiple) an und das entspricht doch
dem aktuellen "normalen" Befehlszeilen _.copy

Schau mal hier als Beispiel: http://ww3.cad.de/foren/ubb/Forum145/HTML/001481.shtml#000002 

Da ich dein "jetziges" Problem nicht verstehe und falls du mit dem
Link nicht weiterkommst.. Frag nochmal nach und schilder genau
was das Problem ist.

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3307
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 14. Nov. 2008 09:23    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,

ich lese es so, dass dem Anwender die Optionen des Befehls angeboten werden sollen, er also gar nicht merkt, dass gelispelt wird.

Dazu müsste man IMHO den Befehl mit (initget), (getkword) und Konsorten zur Steuerung von COPYMODE nachprogrammieren.


Gruß
CADchup

------------------
CADmaro.de

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: 14. Nov. 2008 09: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

Hallo an alle,

 

Zitat:
Original erstellt von CADchup:

ich lese es so, dass dem Anwender die Optionen des Befehls angeboten werden sollen, er also gar nicht merkt, dass gelispelt wird.

genau das wäre mein Wunsch. Ich habe jetzt folgenden Befehl um es in etwa abzubilden:

( defun c:kopieren ( /
                    ferrorsav
                    icmdechosav icopymode ipickfirst
                    lenamenk lenamevk
                    pauswahl
                    swwanrakt )

; Den gewählten Auswahlsatz UNBEDINGT am Anfang ermitteln, da die Werte dafür nur zu diesem Zeitpunkt wichtig sind
  (setq pauswahl nil)
  (setq ipickfirst (getvar "pickfirst"))
  (if (= ipickfirst 1)
    (setq pauswahl (ssget "_i"))
  ) ; if
  (if (= pauswahl nil)
    (setq pauswahl (ssget))
  ) ; if

; Den Namen der Funktion für den Error-Fall sichern
  (vl-doc-set '*cfunktionsave* "c:kopieren")
 
; Die Fehlerbehandlung vorbereiten
  (setq ferrorsav *error*)    ; bisherigen errorhandler sichern (lokale Variable für das Zurücksetzen, falls Befehl in Befehl gestartet wird)
  (setq *error* error_acadwe) ; neuen errorhandler setzen (globale Variable)
   
; Den Beginn der Gruppe für den AutoCAD-Befehl "zurück" setzen
  (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))

; Die Objekte gegebenenfalls kopieren
  (if (/= pauswahl nil)
    (progn
 
    ; Die Acadwe-Objekte vor dem Kopieren ermitteln
      (setq lenamevk (elementnamen_ermitteln t nil))
 
 

Zitat:

    ; Die Elemente kopieren
      (setq icopymode (getvar "copymode"))
      (setq icmdechosav (getvar "cmdecho"))
      (setvar "cmdecho" 1)
      (command "_.copy" pauswahl "")
      (if (= icopymode 0) ; Mehrfach
        (command "_m")    ; _m (= Mehrfach) damit es in etwa mit dem originalen Befehl _.copy übereinstimmt
      ) ; if
      (while (/= (getvar "cmdactive") 0)
        (command pause)
      ) ; while
      (setvar "cmdecho" icmdechosav)   

    ; Den Schalter für die Aktualisierung der Wegweisernummer ermitteln
      (setq swwanrakt (wwnr_schalter_akt_ermitteln))
 
    ; Die Basispunkte vom Block in den erweiterten Daten aktualisieren
      (setq lenamenk (elementnamen_ermitteln t nil))
      (basispkt_block_eed lenamevk lenamenk swwanrakt)
 
    ; Die Wegweiser-Nr. jedes Elements entsprechend der Lage zu den vorhandenen Wegweiserrändern/Pfeilwegweiser aktualisieren
      (wwnr_ww_aktualisieren lenamenk)
 
    ) ; progn
  ) ; if
 
; Das Ende der Gruppe für den AutoCAD-Befehl "zurück" setzen
  (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 
; Die Fehlerbehandlung zurücksetzen
  (setq *error* ferrorsav) ; globale Variable
 
; Rückgabewert
  (princ)

) ; Modulende 

Gruß Bernd

[Diese Nachricht wurde von Bernd10 am 14. Nov. 2008 editiert.]

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3307
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 14. Nov. 2008 14:12    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,

schnell noch die Abfrage, wie sie im Ansatz aussehen könnte, falls du es weiter an das Original anpassen möchtest:

Code:
(initget "Verschiebung mOdus")
(if (= "mOdus"
      (setq a
              (cond
                ((getpoint
                  "\nBasispunkt oder [Verschiebung/mOdus] <Verschiebung>: "
                )
                )
                ('(0.0 0.0 0.0))
              )
      )
    )
  (progn
    (initget "Einzeln Mehrfach")
    (setq b
          (cond
            ((getkword
                "\nKopiermodusoption eingeben [Einzeln/Mehrfach] <Mehrfach>: "
              )
            )
            ("Mehrfach")
          )
    )
  )
)


Gruß
CADchup

------------------
CADmaro.de

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: 14. Nov. 2008 14:31    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 CADchup,

Original erstellt von CADchup:

schnell noch die Abfrage, wie sie im Ansatz aussehen könnte, falls du es weiter an das Original anpassen möchtest:

Code:
(initget "Verschiebung mOdus")
(if (= "mOdus"
       (setq a
              (cond
                ((getpoint
                   "\nBasispunkt oder [Verschiebung/mOdus] <Verschiebung>: "
                 )
                )
                ('(0.0 0.0 0.0))
              )
       )
    )
  (progn
    (initget "Einzeln Mehrfach")
    (setq b
           (cond
             ((getkword
                "\nKopiermodusoption eingeben [Einzeln/Mehrfach] <Mehrfach>: "
              )
             )
             ("Mehrfach")
           )
    )
  )
)

[/QUOTE]

danke für die Information.

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