Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Ausrichten per Script?

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:  Ausrichten per Script? (973 mal gelesen)
Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 19. Sep. 2012 13: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

Hallo Leute,

ich habe hier in einer Datei etwa 300 Objekte, die ich per ALIGN verschieben möchte. Die Ausgangs- und Zielkoordinaten sind bekannt und liegen in einer Textdatei vor. Der Verschiebevektor ist bei allen Objekten unterschiedlich.
Per Hand ist es möglich, aber zeitaufwändig. Ich hatte mir anfangs ein Script in den Kopf gesetzt, dass den Befehl aufruft, auf eine Eingabe von mir wartet (Objekt markieren) und dann das Ausrichten anhand der Koordinatenpaare vornimmt. Nun habe ich aber festgestellt, dass die Interaktion mit ACAD während eines Scriptes nicht möglich ist.

Hat hier jemand eine Idee, wie ich das Problem lösen kann? Ein Praktikant steht leider nicht zur Verfügung. 

------------------
Viele Grüße Lutz

Glück Auf!

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 19. Sep. 2012 13: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 Dig15 10 Unities + Antwort hilfreich

'n Lisp ? aber wie soll die Zuordnung Objekt-Koordiantenpaare erfolgen ?

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 19. Sep. 2012 13:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Die Objekte müssen in der Reihenfolge angeklickt werden, wie die Koordinatenpaare abgelegt sind. Eine Alternative wäre noch, das Objekt auszuwählen, welches 1 ZE rechts der ersten Koordinate liegt. Aber das geht dann wohl schon wieder in die Richtung: mit Kanonen auf Spatzen geschossen

------------------
Viele Grüße Lutz

Glück Auf!

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 19. Sep. 2012 13: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 Nur für Dig15 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Dig15:
Eine Alternative wäre noch, das Objekt auszuwählen, welches 1 ZE rechts der ersten Koordinate liegt. Aber das geht dann wohl schon wieder in die Richtung: mit Kanonen auf Spatzen geschossen


Aber imho das einzig praktikable ... kann mir nicht vorstellen, das du bei der Klickerei nicht durcheinander kommst ...
ich guck mal..wie sieht die koordianten-txt-datei aus ?

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

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

Zitat:
Original erstellt von CADmium:
..wie sieht die koordianten-txt-datei aus?

Vielen Dank schon mal für Deine Bemühungen. Die txt-Datei ist noch beliebig gestaltbar. Die Koordinaten liegen noch im Excel. Ich hatte bis jetzt vorgesehen: 1. Ausgangspunkt 1. Zielpunkt 2. Ausgangspunkt 2. Zielpunkt, das Koordinatenpaar ist Kommagetrennt (X1a,Y1a X1z,Y1z X2a,Y2a X2z,Y2z). Alles auf einer Zeile. Ist aber eben noch gestaltbar. 

------------------
Viele Grüße Lutz

Glück Auf!

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 19. Sep. 2012 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 Nur für Dig15 10 Unities + Antwort hilfreich

mal auf die schnelle (ungetestet) zusammengeklöppelt :

(defun C:TESTUS(/ FNAME)
(vl-load-com)
(defun DT:ALIGN(AP1X AP1Y ZP1X ZP1Y AP2X AP2Y ZP2X ZP2Y / OBJ FUZZY)
  (setq FUZZY 1.0)
  (if(or(and (setq OBJ(ssget "_C" (list (- AP1X FUZZY)(- AP1Y FUZZY))(list (+ AP1X FUZZY)(+ AP1Y FUZZY))))
            (setq OBJ(ssname OBJ 0))
        )
        (vla-zoomwindow
          (vlax-get-acad-object)
          (vlax-3d-point (list (- AP1X 100) (- AP1Y 100)))
          (vlax-3d-point (list (+ AP1X 100) (+ AP1Y 100)))
        )       
        (setq OBJ (car(entsel (strcat "\nOBJEKT wählen für ["(rtos AP1X 2 2)","(rtos AP1Y 2 2)"] : "))))
    )     
    (command "_align" OBJ "" (list AP1X AP1Y 0)(list ZP1X ZP1Y 0)(list AP2X AP2Y 0)(list ZP2X ZP2Y 0)"" "_n")
  )
)

(defun DT:TEXTFILE->LST (DATEINAME / DATEI ZEILE BASE-LST ) 
  (if (and(=(type DATEINAME) 'STR)
          (setq DATEINAME(findfile DATEINAME))
          (setq DATEI (open DATEINAME "r"))
      )   
    (progn
      (while(=(type(setq ZEILE(read-line DATEI)))'STR)
        (setq BASE-LST (cons (vl-string-trim " " ZEILE) BASE-LST))
      )
      (setq DATEI(close DATEI))
      BASE-LST
    )   
  )
)
(defun DT:STR-DIVS(STRING SEPARATOR / POS OFFSET LISTE)
  (if(and(=(type STRING) 'STR)(=(type SEPARATOR) 'STR))
    (progn
      (setq POS    (vl-string-search SEPARATOR STRING))
      (setq OFFSET (1+(strlen SEPARATOR)))
      (while POS
        (setq LISTE  (cons (substr STRING 1 POS) LISTE)
              STRING (substr string (+ POS OFFSET))
              POS    (vl-string-search SEPARATOR STRING)
        )
      )
      (reverse (cons STRING LISTE))
    )
  )
)


  (if(and(setq FNAME(getfiled "KOORDS" "" "txt" 8))
        (setq FNAME(findfile FNAME))
        (setq L(DT:TEXTFILE->LST FNAME))
        (setq L(mapcar '(lambda(X / Y)(mapcar 'distof (DT:STR-DIVS X ";")))L))
    )
    (mapcar
      '(lambda(X) (DT:ALIGN (nth 0 X)(nth 1 X)
                            (nth 2 X)(nth 3 X)
                            (nth 4 X)(nth 5 X)
                            (nth 6 X)(nth 7 X)
                  )
      )
    )
  )
)

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 20. Sep. 2012 08:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Morgen,
bin jetzt gerade zum testen gekommen. Dateiauswahl klappt, dann kommt die Meldung:
Code:
Befehl: TESTUS
; Fehler: Zu wenig Argumente

Eine Idee?
Mal zwei Zeilen aus der Transformationsdatei:
Code:
3670000,5880000 4468753.036,5877097.004 3680000,5880000 4478740.615,5876678.884
3630000,5870000 4428379.801,5868779.918 3640000,5870000 4438369.379,5868362.19

------------------
Viele Grüße Lutz

Glück Auf!

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

System: F1
und Google

erstellt am: 20. Sep. 2012 09: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 Dig15 10 Unities + Antwort hilfreich

Das Ende ab Zeile (if(and(setq FNAME... mal auf deine Formatierung angepasst (extrem dirty / bis sich CADmium wieder meldet reichts)

  (if(and(setq FNAME(getfiled "KOORDS" "" "txt" 8))
        (setq FNAME(findfile FNAME))
        (setq L(DT:TEXTFILE->LST FNAME))
        (setq L(mapcar '(lambda(X / Y)(mapcar 'distof (DT:STR-DIVS (repeat 4 (setq X (vl-string-subst " " "," X))) " "))) L))
    )
    (mapcar
      '(lambda(X) (DT:ALIGN (nth 0 X)(nth 1 X)
                            (nth 2 X)(nth 3 X)
                            (nth 4 X)(nth 5 X)
                            (nth 6 X)(nth 7 X)
                  )
      )
      L
    )
  )
)

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 20. Sep. 2012 09:35    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 Dig15 10 Unities + Antwort hilfreich

jo .... fiel mir gestern mit runter .. sollte mit Sebs L ergänzung und ändern von ";" auf "," laufen

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 20. Sep. 2012 10: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

Super! Tausend Dank Euch Beiden! Klappt wunderbar.

------------------
Viele Grüße Lutz

Glück Auf!

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