Hallo forumleden,
Ik zou graag een bestand willen kopieeren naar de map van de geopende tekening.
Weet iemand hier een oplossing voor.
Alvast bedank voor de moeite.
Atwist
Deze lisp opent de explorer in de map waar de tekening staat:(defun c:Explore ( / )
(if (= (getvar "dwgtitled") 1)
;; (startapp (strcat "c:/WINDOWS/explorer.exe " (getvar "dwgprefix")))
(startapp (strcat "explorer.exe /n,/e," (getvar "dwgprefix")))
(alert "Save drawing first")
)
(princ)
)
Roy,
Dank voor je reactie.
Deze kende ik al maar wat ik zoek is iets dat ik met 1 druk op de knop het bestand naar de map van de geopende tekening kopieerd.
Atwist
Atwist,
check de volgende http://www.cadtutor.net/forum/showthread.php?t=40290 (http://www.cadtutor.net/forum/showthread.php?t=40290) voor een uitleg voor de filecpoy
greetz,
stephan
Stephan,
Dank voor je reactie.
Snap alleen niet wat er met deze VLX code word bedoeld en waar moet ik deze dan neer zetten.
Ik hoor het graag.
Atwist
De code kun je opnemen in een eigen functie zoals Roy als voorbeeld geeft. Met vlx code benader je de vba engine en heb je wat extra functionaliteit tot je beschikking.
greetz, stephan
Stephan,
Dank voor je uitleg.
Maar ik denk dat ik mijn dag niet heb want ik snap het nog steeds niet.
Dag,
bedoel je zoiets:
(defun C:os ()
(setq dwgnaamext (getvar "dwgname"))
(setq naamlengtetot (strlen dwgnaamext))
(setq naamlengte (- naamlengtetot 4))
(setq dwgnaam (substr dwgnaamext 1 naamlengte))
(setq dwgnaam_n.dwg (strcat "kopie" " " dwgnaam ".dwg"))
(setq dwgpadnaam_n.dwg (strcat (getvar "dwgprefix") dwgnaam_n.dwg))
(if (/= dwgpadnaam_n.dwg (findfile dwgnaam_n.dwg))
(progn
(command "saveas" "" dwgpadnaam_n.dwg)
(alert "Bestand opgeslagen projectmap")
)
(progn
(alert "Dit bestand bestaat al. Het bestand is NIET opnieuw opgeslagen!")
)
)
(command "_close" "y")
)
Gr JMD
Bijlage: CopyFileToDwgPath.lsp
Het bestand bevat 3 voorbeeldfuncties.
Als je CopyFileToDwgPath achter een werkbalk-knop wilt zetten dan moet de lisp op de bekende manier worden geladen (Startup Suite of acaddoc.lsp).
Getest op Bricscad 10.1.7 (trial)
Roy,
Dit is net wat ik zoek, ik heb alleen 1 probleem.
Als ik het bestand "clientsettings" (deze komt ook van jou hand) kopieer met de LISP dan staat deze netjes in de map van de tekening maar de naam is dan "lientsettings" dus de "c" is weg.
Weet jij misschien hoe dit kan.
Atwist
JMD,
Ik heb jou tip net getest maar het werkt bij niet.
Atwist
Citaat van: Atwist op do 22 10 2009, 18:31:22... de naam is dan "lientsettings" dus de "c" is weg. Weet jij misschien hoe dit kan.
Ik vermoed dat je ergens een typefout hebt gemaakt.
<EDIT>Herstel: een typefout is eigenlijk onwaarschijnlijk. Het bestand wordt immers gevonden...</EDIT>
Onderstaande code werkt bij mij:
(defun c:voorbeeld4 ( / )
(CopyFileToDwgPath "c:/Documents and Settings/ClientSettings.lsp" nil) ; nil: do not overwrite
)
(defun c:voorbeeld5 ( / )
(CopyFileToDwgPath "c:\\Documents and Settings\\ClientSettings.lsp" T) ; T: overwrite
)
Geef anders even aan hoe jij CopyFileToDwgPath aanroept.
Meteen maar een extra testje. Kopieer deze regel naar de commando-regel en druk op enter:
(substr "c:\\Documents and Settings\\ClientSettings.lsp" (+ (strlen (vl-filename-directory "c:\\Documents and Settings\\ClientSettings.lsp")) 2))
Het resultaat moet "ClientSettings.lsp" zijn.
Roy,
Ik heb voorbeeld 2 verwerkt in mijn toolbutton dat de "c" weg is heb ik als volgt opgelost:
ik gebruik nu een extra letter =eerste letter van de klant dus heb bv "Aclientsettings" voor klant A enz
in de map van de tekening komt nu netjes "clientsettings"te staan zo kan ik voor elke klant de layersettings maken.
kortom het werk perfect.
Ik dank je voor de gedane moeite.
Atwist
Beste Atwist,
Omdat ik het graag precies wil weten: Probeer dit toch eens:
Citaat van: roy_043 op do 22 10 2009, 21:16:45
Meteen maar een extra testje. Kopieer deze regel naar de commando-regel en druk op enter:
(substr "c:\\Documents and Settings\\ClientSettings.lsp" (+ (strlen (vl-filename-directory "c:\\Documents and Settings\\ClientSettings.lsp")) 2))
Het resultaat moet "ClientSettings.lsp" zijn.
Jouw oplossing vind ik een vreemde workaround.
Bijlage: CopyFileToDwgPath-B.lsp
Hierbij moet het probleem van de verdwijnende letter niet optreden.
Roy,
Ik ga deze optie's even proberen, ik hou je op de hoogte.
Atwist