Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Pfad speichern/merken

  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Thema geschlossen  Thema geschlossen!
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:   Pfad speichern/merken (676 mal gelesen)
fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

erstellt am: 08. Mrz. 2017 13:48    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


Pfad_Bas.PNG

 
Hallo Communitiy

Bin dabei eine LSP zu erstellen.

Ich benötige dazu folgende Information (siehe Fett):

Command: -XREF
Enter an option [?/Bind/Detach/Path/pathType/Unload/Reload/Overlay/Attach] <Attach>: P
Edit xref name(s) to edit path: ba
xref name: "ba"
Old path: basbanedhe.dwg
Enter new path: *Cancel*
Path unchanged.

siehe auch Anhang.

(Der Pfad ändert sich pro Plan)

Ich suche eine art "getvar prefix" aber natürlich für den Pfad von der Xref die immer "ba" heisst.


Danke und Gruss

[Diese Nachricht wurde von fmfm am 08. Mrz. 2017 editiert.]

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: 17420
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 08. Mrz. 2017 14:32    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 fmfm 10 Unities + Antwort hilfreich

...wie alles begann...     <Klick!>

Wenn es dir hilft     (gibt nicht den Pfad, sondern wie -XREF auch, Pfad+Dateiname+Extension aus)

Code:

(defun GetXrefPath-byRefName (REFNAME / BLK)
(if (and ;wenn
       REFNAME
      (setq BLK (tblobjname "BLOCK" REFNAME)) ; Block-ObjectName, wenn vorhanden
      (setq BLK (entget BLK)) ; Block-EntityList
      (= 4(logand(cdr(assoc 70 BLK))4)) ; XREF?
    )   ; dann
    (cdr(assoc 1 BLK))
    "Keine entsprechenden XRef-Namen gefunden."
)
)

;; (GetXrefPath-byRefName "MyRef") => "Testdatei.dwg"


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

nein leider nich 

Command: GETXREFPATH-BYREFNAME
; error: too few arguments

leider noch zu komplex. Ihr seid doch die spezialisten 

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: 17420
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 08. Mrz. 2017 14:47    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 fmfm 10 Unities + Antwort hilfreich

Bitte verändere nicht meinen Code und beanstande dann deinen Mist bei mir.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

erstellt am: 08. Mrz. 2017 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

hö?

ich hab das zum testen in eine LSP umgebaut?


(defun C:GetXrefPath-byRefName (REFNAME / BLK)
(if (and ;wenn
      REFNAME
      (setq BLK (tblobjname "BLOCK" REFNAME)) ; Block-ObjectName, wenn vorhanden
      (setq BLK (entget BLK)) ; Block-EntityList
      (= 4(logand(cdr(assoc 70 BLK))4)) ; XREF?
    )  ; dann
    (cdr(assoc 1 BLK))
    "Keine entsprechenden XRef-Namen gefunden."
)
)

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

okok danke ich gibs auf

Trotzdem vielen Dank nochmal


Gruss

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

runkelruebe
Moderator
Straßen- / Tiefbau




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

Beiträge: 7526
Registriert: 09.03.2006

sw:
Win7-x64
Office 365 ProPlus
C3D (& LT )
ET; DACH; Extensions
-------------------
hw:
FX3800
i5 CPU 670
8GB RAM

erstellt am: 08. Mrz. 2017 15: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 fmfm 10 Unities + Antwort hilfreich

Es IST bereits ein lsp-code und er tut genau das, was cadffm schreibt.
Du solltest nichts dazwischenbasteln, bevor Du es nicht verstehst.

Nimm den Code 1:1 und rufe die Funktion so auf, wie es Dir gesagt wurde: 

Code:
(GetXrefPath-byRefName "NameDeinerXRef")
mit allen Klammern.

[rredit]
Leseempfehlungen: 
About Defining Commands (AutoLISP)  sowie
About C:XXX Functions (AutoLISP)
und die unterstrichenen Wörter in cadffms code sind ebenfalls links zur Autodeskhilfe 

PS: Was ist eigentlich aus Deinen buttons geworden? ;-)

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

(defun C athbasis()
(setq path1 (getvar "dwgprefix"))
(setq newpath1 (strcat (vl-string-subst "durch das hier1" "wird erstzt1" (vl-string-right-trim "SBAN\\" path1)) "\\"))
(setq newpath2 (strcat (vl-string-subst "durch das hier2" "wird erstzt2" (vl-string-right-trim "SBAN\\" newpath1)) "\\"))

;bis hier funktioniert alles... pfad wird richtig angezeigt... es fehlt nur noch der DWG Name...

;hier versuche ich das von CADFFM einzufügen

(defun GetXrefPath-byRefName (REFNAME / BLK)
(if (and ;wenn
      REFNAME
      (setq BLK (tblobjname "BLOCK" REFNAME)) ; Block-ObjectName, wenn vorhanden
      (setq BLK (entget BLK)) ; Block-EntityList
      (= 4(logand(cdr(assoc 70 BLK))4)) ; XREF?
    )  ; dann
    (cdr(assoc 1 BLK))
    "Keine entsprechenden XRef-Namen gefunden."

; und ab hier versuche ich das ganze umzusetzen

(command "-xref" "path" "ba" "newpath2 GetXrefPath-byRefName")

)
)


;das kommt beim Laden meiner Lsp

Command: _appload pathbasis.LSP successfully loaded.
Command: ; error: malformed list on input

zum Profil habe ich nun gelesen das ich eine ARG datei brauche um die Buttons so wiederherstellen zu können.
Ich habe nun alle Buttons wieder hingeschoben wie ich sie wollte und mir eine .Arg datei erstellt.
Jetzt warte ich geduldig auf meinen nächsten Restart bevor ich das teste

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

Fiedelzastrow
Mitglied
Architekt / Bauzeichner


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

Beiträge: 898
Registriert: 05.07.2007

Win XP
AutoCAD 2006
AutoCAD 2009
AutoCAD 2012 LT

erstellt am: 08. Mrz. 2017 15: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 fmfm 10 Unities + Antwort hilfreich

Hallo fmfm,

OT: bevor die nächste Frage kommt 

Zitat:
Ich habe nun alle Buttons wieder hingeschoben wie ich sie wollte und mir eine .Arg datei erstellt.
Jetzt warte ich geduldig auf meinen nächsten Restart bevor ich das teste

Leseempfehlung

Gruß
Robert

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: 17420
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 08. Mrz. 2017 16: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 Nur für fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
okok danke ich gibs auf

Trotzdem vielen Dank nochmal


Gut,
Button noch nicht verstanden und beim Thema Lisp
ist die Lernkurve seit November auch im Wasser.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

runkelruebe
Moderator
Straßen- / Tiefbau




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

Beiträge: 7526
Registriert: 09.03.2006

sw:
Win7-x64
Office 365 ProPlus
C3D (& LT )
ET; DACH; Extensions
-------------------
hw:
FX3800
i5 CPU 670
8GB RAM

erstellt am: 08. Mrz. 2017 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 fmfm 10 Unities + Antwort hilfreich

Du mußt langsamer werden (und VORNE anfangen)  

Du sollst cadffms code nicht einfach 1:1 in Deinen reinkopieren.

Nimm Dir doch mal seinen code her und schau, was die Zeilen tun.
Mach es EINZELN, Schritt für Schritt und beguck Dir jeweils das Ergebnis:

Code:
(setq BLK (tblobjname "BLOCK" "NameDeinerXRef"))

Rückgabe: <Objektname: 4d663c00>
Code:
(setq BLK (entget BLK))

Rückgabe: ((-1 . <Objektname: 4d663c00>) (0 . "BLOCK") (330 . <Objektname: 4d663bf0>) (5 . "20255A8") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbBlockBegin") (70 . 36) (10 0.0 0.0 0.0) (-2 . <Objektname: 4dc155a0>) (2 . "Grundriss_NTR_2OG") (1 . "\\\\servername\\userdaten$\\runkelruebe\\Desktop\\Grundriss_NTR_2OG.dwg"))
Code:
(cdr(assoc 1 BLK))

Rückgabe:  "\\\\servername\\userdaten$\\runkelruebe\\Desktop\\Grundriss_NTR_2OG.dwg"

Was erwartest Du z.B., wenn Du jetzt (cdr(assoc 2 BLK)) abfragen würdest?

Was gelernt? Was verstanden? Nutzbar für Dein Anliegen?


Und zu den buttons: Wo auch immer Du das mit ARG gelesen hast, vergiß es wieder. Lies es noch einmal, zweimal, ein dutzend mal. Das wird aber nicht langen, Du mußt es TUN, um es zu verstehen  
Aber das Thema behandeln wir im Nachbarthread weiter. Ich wollte nur dezent darauf hinweisen, dass da noch ne Rückmeldung aussteht  

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

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: 17420
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 08. Mrz. 2017 20:21    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 fmfm 10 Unities + Antwort hilfreich

Hallo fmfm

Zitat:
(setq newpath1 (strcat (vl-string-subst "durch das hier1" "wird erstzt1" (vl-string-right-trim "SBAN\\" path1)) "\\"))
(setq newpath2 (strcat (vl-string-subst "durch das hier2" "wird erstzt2" (vl-string-right-trim "SBAN\\" newpath1)) "\\"))

Der Name deiner letzten BEIDEN Ordner kann "SBAN" sein und es soll wahlweise mal einer oder zwei entfernt werden?
Wohl kaum :(
F1 / setq und vl-string-subst

=========

In deinem Eröffnungspost hast du die Rückgabe von -XREF beschrieben (bildlich)
folgende wären da möglich:
"Dateiname.dwg" (ohne gespeicherte Pfadangabe)
".\Dateiname.dwg" (relative Pfadangabe)
"c:\temp\Dateiname.dwg" (absolute Pfadangabe)

Es wird immer der gespeicherte Pfad+Dateiname+Dateierweiterung ausgegeben

Dann hast du eine Art Prefix angesprochen, das wäre dann "nur" der Pfad, also
""
".\"
"c:\temp\"

Nun hast du gezeigt wofür du es möchtest, nämlich um den AutoCAD-Befehl -XREF mit Werten zu füttern.
Nun wird klar das du nicht die Rückgabe gemäß -XREF benötigst und auch kein Prefix, sondern den Dateinamen der Xref.

Meine Funktion würde, auch richtig eingebaut, nicht (nur) den benötigten Dateinamen liefern.
Damit kannst du "GetXrefPath-byRefName" vergessen.

Die (richtige) Frage zum Dateinamen einer XRef hast du bereits am 09. Jan. 2017 um 17:22 Uhr gestellt

Eine Lösung dazu kam von einem cadffm bereits am 10. Jan. 2017 um 01:29 Uhr <-- click4code [GetXrefFileName-byRefName]

Und heute am 08. Mrz. 2017 sind wir kein Stück weiter.

(setq newpath2 (strcat (vl-string-subst "durch das hier2" "wird erstzt2" (vl-string-right-trim "SBAN\\" newpath1)) "\\" (GetXrefFileName-byRefName "MeinXRefName")))

Dies ergänzt den neuen Pfad um Dateiname+Erweiterung der XRef, so benötigt es der Befehl -XREF wenn man den Pfad absolut speichern möchte.

Die Möglichkeit AutoCAD-Befehle zu steuern (Script, Makro oder halt mit Command) ist nett,
aber man unterliegt dann auch dessen Vorgaben und Einschränkungen.

So prüft der Befehl -XREF zB. ob über diese neue Angabe die entsprechende Datei überhaupt gefunden wird,
auch prüfst du bisher nicht ob in deiner aktuellen Datei überhaupt eine XRef mit dem Namen vorhanden ist.
Beides sollte als sichergestellt sein
:
Ausführen nur wenn XRef-Verweis vorhanden ist UND ob mit neuer Angabe die Datei gefunden wird, sonst nicht.
XRef-Verweis vorhanden? Das kann man mit der Funktion zum Dateinamen abfragen ebenfalls klären,
denn die liefert nichts zurück wenn kein XRef-Verweis mit dem übergebenen Namen vorhanden ist.
Ziel-Verweis: Bei absoluten Pfaden und ohnePfad ist es ganz einfach mit (findfile ..) zu prüfen.


NEUER Versuch, die Funktion aus dem Link noch laden und testen

Code:
(defun C:Pathbasis_BA (/ refname xreffilename newpath)
  (if (and
        GetXrefFileName-byRefName ; Funktion von --> http://forum.cad.de/foren/ubb/Forum54/HTML/033211.shtml#000036
        (setq refname "DwgReferenzname"); Name der Referenz angeben
        (setq xreffilename (GetXrefFileName-byRefName refname)) ; prüfen ob es eine XRef mit dem Namen gibt
        (setq newpath (strcat (vl-string-subst "durch das hier1" "wird ersetzt1" (vl-string-right-trim "SBAN\\" (getvar "dwgprefix"))) "\\"))
        (setq newpath (strcat (vl-string-subst "durch das hier2" "wird ersetzt2" newpath) "\\" xreffilename))
        (findfile newpath); Wenn die Zieldatei gefunden wird / SO nur für absolute und keine Pfad einsetzbar
      )
      (command "_.-XREF"  "_path" refname newpath); Befehl -XREF ausführen
  )
(princ)
)

Abspeichern/laden:
Man kann die Funktionen C:Pathbasis_BA und GetXrefFileName-byRefName zusammen in eine
Datei(.lsp) packen.
Wenn es auch sinniger wäre GetXrefFileName-byRefName und GetXrefPath-byRefName etc. in eine Biblitothek.lsp unterzubringen,
dann muß man jedoch separat dafür sorgen das die Funktionen geladen werden und ... / lassen wir es hier gut sein.


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

erstellt am: 09. Mrz. 2017 17: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

hi

(defun C   athbasis()
(setq path1 (getvar "dwgprefix"))
(setq newpath1 (strcat (vl-string-subst "123" "456" (vl-string-right-trim "SBAN\\" path1)) "\\"))
(setq newpath2 (strcat (vl-string-subst "abc" "def" (vl-string-right-trim "SBAN\\" newpath1)) "\\"))

(setq BLK (tblobjname "BLOCK" "ba"))
(setq BLK (entget BLK))

(command "-xref" "_path" "ba" (cdr(assoc 1 newpath2)) (cdr(assoc 1 BLK)))
)

könnt ihr mir bei der letzten Zeile helfen?
Wie setz ich den letzten Befehl um? Ich hab jetzt ein Paar Varianten ausprobiert. Ohne Erfolg.

(command "-xref" "_path" "ba" ;;; bis hier hin zeigt mir die Kommandozeile noch alles richtig an...

[Diese Nachricht wurde von fmfm am 09. Mrz. 2017 editiert.]

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: 17420
Registriert: 14.06.2002

System: F1
und Google

erstellt am: 09. Mrz. 2017 20: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 fmfm 10 Unities + Antwort hilfreich


"hoffentlich nicht"

Vor Monaten ging der geneigte Helfer auch davon aus das du dich in die Thematik einarbeiten möchtest,
--> Sagtest du hier http://forum.cad.de/foren/ubb/Forum54/HTML/033211.shtml#000034
Die Codebeispiele waren nur als Turbo für die Hilfe der Selbsthilfe gedacht.

Die Codebeispiele die dir geboten wurden sind teilweise "gefährlich", wenn man es blind einsetzt
dann kann es also auch nach hinten losgehen.


Befehl: (vl-string-right-trim "SBAN\\" "c:\\netterTest\\BANS\\SBAN\\")
liefert zB. dieses hier: "c:\\netterTest"
Ob das so gewollt ist?

Befehl: (vl-string-right-trim "SBAN\\" "c:\\netterTest\\BANS\\sban\\")
liefert dieses hier: "c:\\netterTest\\BANS\\sban"
Ob das so gewollt ist?


Überleg mal: Bei euch geht es um hunderte, gar tausend(e) Dateien
und soweit bekannt ist: Dies ist ja nicht die einzige Aufgabe mit (den und anderen) vielen Dateien!
Warum ihr euch nicht Unterstützung holt - Geld und Zeit scheint in Unmengen vorhanden zu sein, nur die Arbeit ist noch nicht gemacht  


Hilfestellungen und Komplettlösungen gab es genug denke ich.
Wer fertige anwenderfreundliche UND SICHERE Lösungen benötigt, für den gibt es im Zweifelsfall andere Wege zu beschreiten.

Als Mod gibt es keinen Grund hier zu schließen, als User - wie ich hier auch helfe - würde ich es aber gerne aus Beschützerinstinkt  

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

erstellt am: 13. Mrz. 2017 18: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

ich kann grad nicht Nachvollziehen wieso so eine grosse Sache daraus gemacht wird...
ich bemühe mich die ganze zeit hier weiter zu kommen und probiere ALLES aus...

anstatt hier einfach die komplette Lösung zu nennen nach den Zicktausend versuchen von mir...

wenn es euch glücklich macht das ich zu keinem Ergebniss komme, dann habt ihr euer Ziel erreicht.

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1005
Registriert: 11.01.2006

WinXP SP2
WIN 7 pro
WIN 8.1
ACAD 2015

erstellt am: 14. Mrz. 2017 09:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fmfm 10 Unities + Antwort hilfreich

Ich hab das mal verfolgt und ich glaube dass du ALLES versuchst was du schon weißt aber das ist leider nicht ALLES.
(ich hab mich am Anfang auch sehr quälen müssen)

Nochmal ganz langsam.
Du hast eine XREF die nicht gefunden wird weil deren Pfad sich geändert hat.
Den Pfad möchtest du korrigieren.
Du hast den Namen der XREF bzw. kannst ihn ermitteln.
Du hast ein Verzeichnis in dem die Suche losgeht.

Und jetzt hoffe ich dass ich das richtig verstanden habe.
Möchtest du in ein Verzeichnis darüber wechseln verwendest du (vl-string-right-trim ...)

Wie cadffm schon erklärt hat bringt (vl-string-right-trim ...) nicht immer das gewünschte Ergebnis.
Wenn du einen kompletten Pfad mit Dateinamen hast dann nimm mal :
- vl-filename-base für den Dateinamen ohne Extension
- vl-filename-directory für den Pfad

Wenn du den Pfad hast nimm nochmal vl-filename-directory um den Pfad um ein Verzeichnis zu verkürzen (also das Ende abzuschneiden)


Was mir grade noch aufgefallen ist:
Du machst das hier und hast dann in newpath2 einen String
(setq newpath2 (strcat (vl-string-subst "abc" "def" (vl-string-right-trim "SBAN\\" newpath1)) "\\"))

Dann machst du das hier und versuchst mit assoc auf newpath2 zuzugreifen
(command "-xref" "_path" "ba" (cdr(assoc 1 newpath2)) (cdr(assoc 1 BLK)))

Das wird nix weil assoc eine Liste erwartet und du einen String hast.
Denk nochmal drüber nach aber ich glaube du hast noch nicht alles verstanden.

Vielleicht hilfts.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

Hallo

Danke für deine Antwort

nun Stecken alle Informationen hier drinnen:

newpath2
(cdr(assoc 1 BLK)))

Kannst du mir bitte sagen wie ich diese 2 Informationen Kombinieren bzw einfügen kann?

(command "-xref" "_path" "ba" //wie krieg ich den inhalt von "setq newpath2" hier rein?// (cdr(assoc 1 BLK)))


Danke und Gruss

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: 17420
Registriert: 14.06.2002

System: F1
und Google

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

String / Zeichenkettenbearbeitung
AutoCAD-Hilfe About Strings and String Handling (AutoLISP)

Mit dem dir bereits bekannten strcat kannst du mehrere Strings miteinander verbinden.


(setq Start "Anfang")
(setq Ende "Schluss")
-----------------------
(strcat Start "spunkt")
=> "Anfangspunkt"

(strcat "Kassen-" Ende)
=> "Kassen-Schluss"

(strcat "1m" " " "53sek")
=> "1m 53sek"

(strcat Start "/" Ende)
"Anfang/Schluss"


AutoCAD LISP: tutorial.autolisp.info


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

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



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

Beiträge: 9536
Registriert: 01.12.2003

AutoCAD 2.5 - 2017, Civil 3D, MAP 3D, LDD, MDT, ARD
Inventor AIP 4-201x
Win7x64, Win 10

erstellt am: 14. Mrz. 2017 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 fmfm 10 Unities + Antwort hilfreich

Das kann ja gar nicht klappen, wenn
strcat statt setq an entscheidenden Positionen verwendet wird
und bei der Zuweisung von Lisp Ausdrucken diese in Anführungszeichen gesetzt werden. Dann werden diese nicht ausgewertet, sondern wie eine konstante Zeichenkette behandelt.
Außerdem ist vl-string-right-trim missverstanden worden und deshalb unsinning verwendet.

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

Udo Hübner
www.CAD-Huebner.de

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

das dass grad fehlerhaft war habe ich noch selber gemerkt und schnell wieder gelöscht.

zum Thema String... dieses "SBAN" tauscht in meinem pfad nicht auf. (es stört mich nicht das es da steht und autocad stört es auch nicht)

wenn ich in die kommandozeile folgendes eingib, dann hat autocad es trotzdem verstanden was ich haben wollte.

!newpath2 = richtiges ergebnis in der Kommandozeile.

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

so einfach war die Lösung die ich seit November habe hätten können...

(defun C:1245()

(setq path1 (getvar "dwgprefix"))
(setq newpath1 (strcat (vl-string-subst "09" "10" (vl-string-right-trim "SBAN\\" path1)) "\\"))
(setq newpath2 (strcat (vl-string-subst "Architecture" "Evacuation" (vl-string-right-trim "SBAN\\" newpath1)) "\\"))

(setq BLK (tblobjname "BLOCK" "ba"))
(setq BLK (entget BLK))

(setq dwgnamefm (cdr(assoc 1 BLK)))
(command "-xref" "_path" "ba" (strcat newpath2 "" dwgnamefm))
)

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

erstellt am: 14. Mrz. 2017 12:00    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 hab sehr viel dazugelernt.

ich danke allen und vorallem CADFFM für sine mühe und geduld und sein wissen und seine zeit und und und!!!!!!!!!!!!!

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

fmfm
Mitglied
Facility Management


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

Beiträge: 134
Registriert: 18.10.2016

AutoCad 2016

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

hi zusammen das thema ist eig soweit beendet.. hätte trz eine "neue" kurze frage:

für "ba" ist jetzt ein neuer Pfad festgelegt. Kann ich diesen Pfad nun in eine Liste umwandeln?

V:\10\ABC\4000\Bremen\Freiburg

Beispiel:

Code1 V:
Code2 10
Code3 ABC
Code4 4000
Code5 Bremen
Code6 Freiburg


Danke

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



Projektmanager (w/m)
LUDWIG SCHOKOLADE GmbH & Co. KG Die Ludwig Schokolade GmbH & Co. KG ist einer der großen deutschen Schokolade-, Riegel- und Pralinenhersteller und gehören zur weltweit operierenden Krüger-Gruppe für die im In- und Ausland über 4.500 Mitarbeiter und Mitarbeiterinnen tätig sind. Unsere Produktionsstätten in Saarlouis/Saarwellingen verfügen über modernste ...
Anzeige ansehenProjektmanagement
Fiedelzastrow
Mitglied
Architekt / Bauzeichner


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

Beiträge: 898
Registriert: 05.07.2007

Win XP
AutoCAD 2006
AutoCAD 2009
AutoCAD 2012 LT

erstellt am: 14. Mrz. 2017 14:14    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 fmfm 10 Unities + Antwort hilfreich

Hallo fmfm,

neue Frage --> neuer Beitrag 

Zumal cad.de ja nicht nur aus "Rund um AutoCAD" besteht.
Eigens für Fragen dieser Art gibt es das Lisp-Forum.
Bitte stell dort Deine Frage erneut, so können auch andere Leser Deine Fragen gezielt verfolgen und helfen.

Gruß
Robert

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


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2017 CAD.de