Hallo,
Ben nieuw in dit forum en heb gelijk ook een vraag.
Ik ben bezig om een bestaande lisp aan te passen.
Deze (opende) in een map op de C schijf (c:\acaddxf) meerdere tekeningen in een keer op een layout.
Maar de lisp moet nu naar meerdere variabel in de locatie zoeken deze variëren elke keer.
Bijvoorbeeld: C:\archief\123456(dit is een variabele nummer)\aanzichttekeningen\*.dxf files (meerdere dxf tekeningen deze moeten dus ingelezen worden).
Hoe kan ik de code voor de variabele ondernummers opgeven dat de lisp dit elke keer vraagt?
Al wast bedankt voor jullie moeite.
Groetjes.
Zoiets:
(setq proj (getstring T "\nProject: "))
(setq map (strcat "C:\\archief\\" proj "\\aanzichttekeningen\\"))
Roy,
Bedankt voor je hulp.
Het lukt nog niet helemaal, lisp vraagt nu naar project maar leest nog niet de tekeningen.
is eer ook een lisp voor om meerdere tekeningen in een keer in te lessen?
Heb dxf tekeningen in een map, deze hebben altijd de zelfde bestandsnaam (00001.dxf, 00002.dxf, 00003.dxf ect.) maar de project nummer is variabel.
Ik wil deze dxf tekeningen in een tekening inlezen.
Al vast bedankt,
Citaat van: cumen op ma 06 02 2012, 20:21:30
Deze (opende) in een map op de C schijf (c:\acaddxf) meerdere tekeningen in een keer op een layout.
Uit jouw eerste bericht concludeer ik dat jouw 'oude' lisp al in staat is meerdere tekeningen te openen. Het is waarschijnlijk een goed idee als je de originele lisp post.
Roy,
Hierbij.
Het lisp programma is afhankelijk van diverse paden. Ik vermoed dat bepaalde paden niet bestaan of verkeerde bestanden bevatten. Om dit te controleren:
Vervang regel 111:
(if (findfile FileIn)
Door:
(if (print (findfile FileIn))
Probeer het programma opnieuw en kijk naar de meldingen op het scherm. Tref je hier NIL aan dan worden bestanden niet gevonden.
Het bestand dat je hebt bijgevoegd is overigens het GEWIJZIGDE bestand en niet het ORIGINELE.
beste Roy,
Dit is het origineel lisp.
Allen dit regel is nu variabel (setq BrnMap_ "C:\\acaddxf\\")
Hier moet lisp naar verschillende mappen (ordernummers vragen)
Zoals nu de lisp is worden alle de tekeningen ingellezen in een blad.
M.v.g.
Cumen
De instructies uit mijn vorige bericht a.u.b. uitvoeren.
Beste Roy,
Ik wil je eerst bedanken voor je hulp.
heb het voor elkaar heb de text van jou vervangen met setq BrnMap en ja het werkt.
(setq Archief_ "C:\\archief\\")
(setq proj (getstring T "\nProject: "))
(setq BrnMap_ (strcat "C:\\test\\" proj "\\aanzichttekeningen\\"))
Groetjes Cumen,
Aha, je had (strcat ...) niet overgenomen... Was mij nog niet opgevallen.
Roy,
is eer ook een lisp voor tekeningen in te lezen?
Zoek even naar BaBe op deze site.
Citaat van: EddyBeerke op do 09 02 2012, 23:46:37
Zoek even naar BaBe op deze site.
@ Cumen: Dit advies van Eddy is goed als je inderdaad een lisp wilt toepassen op meerdere dwgs. Maar het is de vraag of dat jouw bedoeling is. Kortom: er is iets meer uitleg nodig.
Ik heb BaBe geprobeerd maar bij mij werkt het niet krijg het volgende melding in Acad 2011.
Command: _appload BaBe.lsp successfully loaded.
Command: babe
; error: ARXLOAD failed
Heb ook de DOSLib18.arx geprobert maar krijg het niet voor elkaar.
Ik wil meerdere dxf bestanden in lezen op een blad (zie bijlage).
Citaat van: cumen op vr 10 02 2012, 22:01:17
Ik wil meerdere dxf bestanden in lezen op een blad
Hiervoor is BaBe niet bedoeld. Jij wilt namelijk een lisp toepassen op één dwg.
@ Cumen: Probeer FolderInsert (zie bijlage).
Roy,
Bedankt voor je moeite.
BaBe heb ik uitprobeert maar dit is niet wat ik zocht, maar de FolderInsert.lsp is wel wat ik in gedachten had.
Echter moet ik nu de coördinaten zelf opgeven (klikken) en de folder waar de tekeningen staan handmatig opgeven.
Ik heb geprobeerd deze te veranderen en de coördinaten vaste waardes te geven (het is altijd A3 en 10 moeten naast elkaar komen en de rest dan naar boven opbouwen).
Nu wil ik de lsp zo veranderen dat het automatisch naar de projectmap gaat die ik opgeef en deze dan zonder de X en Y coördinaten moet opgeven zelf opbouwd.
Wat heb ik nu niet goed aangegeven in onderstaande lsp deze werkt nog niet.
(defun c:dxf ( / extPattern files oldOsmode path pt ptShift)
(if
(and
(setq proj (getstring T "\nProject: "))
(setq map (strcat "C:\\archief\\" proj "\\aanzichttekeningen\\"))
(setq proj (getfiled "Selecteer de project map" "" "dxf;dwg" 0))
(setq extPattern (strcat "*" (vl-filename-extension proj)))
(setq proj (strcat (vl-filename-directory proj) "\\"))
(setq files (vl-directory-files proj extPattern 1))
(setq pt (getpoint (strcat "\nFirst insertion point for " (strcase extPattern) " FolderInsert: ")))
(setq ptShift (getdist "\nHorizontal distance: "))
(setq ptShift (list ptShift 0 0))
)
(progn
(setq oldOsmode (getvar 'osmode))
(setvar 'osmode 0)
(setvar 'cmdecho 0)
(mapcar
'(lambda (file)
(command "_.-insert" (strcat (vl-filename-base file) "=" proj file) "_x" 1 "_y" 1 "_z" 1 "_r" 0 pt)
(setq pt (mapcar '+ pt ptShift))
)
(vl-sort files '(lambda (a b) (< (strcase a) (strcase b))))
)
)
(princ)
)
Grotjes,
FolderInsert2.lsp bevat 2 lisp commando's:
1. FolderInsertOptions
2. FolderInsertSpecial
Het laatste commando is een variant aangepast aan jouw defaults.
Als je verder wilt gaan met lisp dan is het aan te raden om eerst een (internet) cursus te volgen.
Wat links:
http://www.autolisp-tutorial.mapcar.net/ (Bijzonder goed maar wel in het Duits)
http://www.afralisp.net/
http://www.cadsite.be/lisp/lisp.php
Beste Roy, :vreegoe: :vreegoe:
Nogmaals bedankt voor al je moeite en mijn complimenten werkt perfect.
Ik ga de internet cursus zeker volgen, bedankt.
Alleen heb ik nog een laatste vraag, kan ook in deze lsp na inlezen van de tekeningen, ook automatisch layouts genereren?
Ik heb al een poging gewacht, maar het lukt niet echt zie bijlage.
Groetjes,
Ik volsta op dit moment met jou veel succes en plezier toe te wensen bij het volgen de Lisp-cursus van jouw voorkeur. Als je daarna een SERIEUZE poging doet om de Lisp aan te passen dan zal ik proberen daar op te reageren.