Beste,
Weet iemand of het mogelijk is om via een lisp de commandos purge en opslaan automatisch kan laten uitvoeren.
Alvast bedankt.
je kan dit ook met een macro
maak een knopje aan en zet onderstaande code deze doet een audit, purge en save.
^C^C_audit;y;-pu;a;;n;save;
Citaat van: jimpie op do 30 04 2015, 16:56:58
je kan dit ook met een macro
maak een knopje aan en zet onderstaande code deze doet een audit, purge en save.
^C^C_audit;y;-pu;a;;n;save;
Let op met de audit functie!
Als er dingen niet op orde zijn kan het zijn dat je dingen kwijt raakt.
Audit geeft dan aan: objects erased...
Als hier een waarde bij staat groter dan 0 kun je dus gegevens kwijtraken als je daarna opslaat!
Beter zou zijn dat je eerst kijkt of er een audit nodig is.
En met "-pu;a;;" raak je ook niet van alle dingen af die je graag zou willen.
Maak daar "-pu;a;*;n;-pu;r;*;n;" van dan doet ie ook de regapps, en dat kunnen er best veel zijn.
Bij elke xref die je gebruikt blijven de regapps ook hangen.
Citaat van: EddyBeerke op vr 01 05 2015, 10:19:56
Let op met de audit functie!
Als er dingen niet op orde zijn kan het zijn dat je dingen kwijt raakt.
Audit geeft dan aan: objects erased...
Als hier een waarde bij staat groter dan 0 kun je dus gegevens kwijtraken als je daarna opslaat!
Beter zou zijn dat je eerst kijkt of er een audit nodig is.
En met "-pu;a;;" raak je ook niet van alle dingen af die je graag zou willen.
Maak daar "-pu;a;*;n;-pu;r;*;n;" van dan doet ie ook de regapps, en dat kunnen er best veel zijn.
Bij elke xref die je gebruikt blijven de regapps ook hangen.
Beste, alvast bedankt voor jullie reacties.
Maar ik dacht meer om deze acties te automatiseren dat ze in de achtergrond draaien zonder dat ik geen last van heeft of niks van merkt.
Ik hoor / zie graag jullie suggestie(s)
Alvast bedankt.
Hepa,
Als het goed is wordt je tekening automatisch al opgeslagen dmv autosave. De periode om de hoeveel tijd dit wordt gedaan kun je instellen met sysvar (uit mijn hoofd SAVETIME) of via de options. Wat betreft het purgen. Autocad is niet multi threaded waardoor het niet mogelijk is om purgen als achtergrond taak te draaien. Je zult er altijd "last" van hebben als je dit als achtergrond proces wilt doen.
De vraag is of je dit als vaste taak moet willen. Stel je dat je deze taak elke 10 minuten laat draaien en je bent net bezig een aantal lagen aan te maken en deze taak komt langs. Ben je al je net aangemaakte lagen weer kwijt. Persoonlijk zou ik purgen gecontroleerder uit willen voeren.
Wat een andere optie is om eens te kijken naar reactors in lisp. Hiermee kun je lisp code uit laten voeren wanneer er een event wordt getriggerd. Zie http://www.afralisp.net/visual-lisp/tutorials/reactors-part-1.php (http://www.afralisp.net/visual-lisp/tutorials/reactors-part-1.php) voor meer info. Bijvoorbeeld op het save commando laat je je tekening purgen.
groeten
Stephan
Citaat van: sschevers op di 05 05 2015, 09:09:47
Hepa,
Als het goed is wordt je tekening automatisch al opgeslagen dmv autosave. De periode om de hoeveel tijd dit wordt gedaan kun je instellen met sysvar (uit mijn hoofd SAVETIME) of via de options. Wat betreft het purgen. Autocad is niet multi threaded waardoor het niet mogelijk is om purgen als achtergrond taak te draaien. Je zult er altijd "last" van hebben als je dit als achtergrond proces wilt doen.
De vraag is of je dit als vaste taak moet willen. Stel je dat je deze taak elke 10 minuten laat draaien en je bent net bezig een aantal lagen aan te maken en deze taak komt langs. Ben je al je net aangemaakte lagen weer kwijt. Persoonlijk zou ik purgen gecontroleerder uit willen voeren.
Wat een andere optie is om eens te kijken naar reactors in lisp. Hiermee kun je lisp code uit laten voeren wanneer er een event wordt getriggerd. Zie http://www.afralisp.net/visual-lisp/tutorials/reactors-part-1.php (http://www.afralisp.net/visual-lisp/tutorials/reactors-part-1.php) voor meer info. Bijvoorbeeld op het save commando laat je je tekening purgen.
groeten
Stephan
Beste Stephan,
Bedankt voor jou reactie. Het idee om reactors toe te passen lijkt mij inderdaad een betere oplossing.
Alleen het schrijven van een Lisproutine is iets wat ik niet beheerst. Maar ik zal met behulp van jou vermelde link kijken of ik zelf tot een oplossing kan komen. Om een reactor toe te passen die na het autosave een purge commando kan uitvoeren.
Maar als jij mij hiermee kan/wil helpen hoor ik het graag.
Alvast bedankt.
Hepa,
Zie de bijlage. Deze reactor haakt op het begin van het save commando in en voert dan een purge uit op je tekening. Als je tekening gepurged is gaat het opslaan van je tekening verder.
LET OP: Ik heb het niet door en door getest.
groeten
stephan
Citaat van: sschevers op di 05 05 2015, 15:20:00
Hepa,
Zie de bijlage. Deze reactor haakt op het begin van het save commando in en voert dan een purge uit op je tekening. Als je tekening gepurged is gaat het opslaan van je tekening verder.
LET OP: Ik heb het niet door en door getest.
groeten
stephan
Beste Stephan,
Alvast bedankt voor jou snelle reactie. Morgen zal ik het toegevoegde lisp uitproberen.
Gr.
Citaat van: Hepa op di 05 05 2015, 21:52:49
Beste Stephan,
Alvast bedankt voor jou snelle reactie. Morgen zal ik het toegevoegde lisp uitproberen.
Gr.
Beste Stephan,
Ik krijg een melding dat het file niet geladen kan worden. Als ik die via de commando appload wil laden.
Jou suggestie(s) hierover hoor ik graag.
Gr.
Hepa,
Ik heb de lisp net in acad 2012 en acad 2015 met appload zonder problemen ingeladen. Welke versie van acad gebruik jij?
Als je de foutmelding krijgt die in de bijlage zit dan moet je de lisp op een trusted location voor autocad zetten. De trusted location kun je vinden in je profile options-->files--> trusted locations
Ander optie is dat windows de file blocked. Dit kun je oplossen door de lisp te selecteren in de verkenner --> Rechtermuistoets --> Eigenschapppen --> Blokkering opheffen.
En anders even een screenshortr van de foutmelding posten
gr
stephan
Citaat van: sschevers op wo 06 05 2015, 08:07:45
Hepa,
Ik heb de lisp net in acad 2012 en acad 2015 met appload zonder problemen ingeladen. Welke versie van acad gebruik jij?
Als je de foutmelding krijgt die in de bijlage zit dan moet je de lisp op een trusted location voor autocad zetten. De trusted location kun je vinden in je profile options-->files--> trusted locations
Ander optie is dat windows de file blocked. Dit kun je oplossen door de lisp te selecteren in de verkenner --> Rechtermuistoets --> Eigenschapppen --> Blokkering opheffen.
En anders even een screenshortr van de foutmelding posten
gr
stephan
Stephan,
Ik gebruik AUTOCAD 2015.
ik heb nl een andere melding. zie bijlage.
Hepa,
check bijgaande link http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/unable-to-use-stl-lsp/td-p/4367741 (http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/unable-to-use-stl-lsp/td-p/4367741). Hier wordt hetzelfde probleem beschreven.
De lisp moet op een trusted location worden geplaatst anders weigert acad om de lisp te laden. Zie mijn vorige post hoe je er achter kan komen waar de trusted location is. Je kunt de map waar de lisp in staat ook toevoegen als trusted location
gr.
Stephan
Hepa,
Wanneer je de lisp laad van een locatie die niet trusted is dan krijg bij de dialoog die in de bijlage zit. Wanneer je de optie "Do not load" kiest krijg je de lisp in de huidige sessie niet meer geladen. Enige wat nog helpt is acad afsluiten en het opnieuw proberen.
Door op do not load te drukken is voor mij de enige manier om jouw fout te reproduceren.
gr.
Stephan
Meer info over trusted location
https://designandmotion.net/autodesk/autocad-2014-startup-lisp-and-autodesk-new-security/
Je wil dat je er niets van merkt... maar als je het met autosave doet dan moet je nog langer wachten voor het klaar is... zeker met grootte bestanden en een trage server... ik zou het niet aanraden om het met auto save te doen.
Kies er dan voor om voor het opslaan (save of saveas) te purgen
Dat is simpel te maken en alleen als je er voor kiest.
Citaat van: sschevers op wo 06 05 2015, 13:31:21
Hepa,
Wanneer je de lisp laad van een locatie die niet trusted is dan krijg bij de dialoog die in de bijlage zit. Wanneer je de optie "Do not load" kiest krijg je de lisp in de huidige sessie niet meer geladen. Enige wat nog helpt is acad afsluiten en het opnieuw proberen.
Door op do not load te drukken is voor mij de enige manier om jouw fout te reproduceren.
gr.
Stephan
Meer info over trusted location
https://designandmotion.net/autodesk/autocad-2014-startup-lisp-and-autodesk-new-security/
Stephan,
Bedankt, na dat ik het map met de lisp in de trust location heb gezet kreeg ik geen melding meer dat het lisp niet wordt geladen.
maar als ik op het knopje "save" drukt krijg ik het volgende melding in het command line:
Command: _QSAVE ._QSAVE ; error: AutoCAD command rejected: "-purge"
; error: AutoCAD command rejected: "-purge"
naar mijn mening lijkt het erop dat het commando purge niet wordt uigevoerd nadat het knopje "save" gebruikt wordt.
Gr.
Hepa,
Zit net te lezen dat wanneer je (command "-purge" .........) doet in een reactor doet dit niet werkt. Ik deze regel dus uit de lisp gehaald.
Net even snel getest en nu werkt het wel.
gr.
stephan
Citaat van: sschevers op wo 06 05 2015, 15:03:50
Hepa,
Zit net te lezen dat wanneer je (command "-purge" .........) doet in een reactor doet dit niet werkt. Ik deze regel dus uit de lisp gehaald.
Net even snel getest en nu werkt het wel.
gr.
stephan
Stephan,
Deze doet ook niet wat ik verwacht. Omdat nu werkt het commando "save" maar het commando "purge" werkt niet. Ook niet als de purge commando afzonderlijk wordt gebruikt.
Gr.
Vervang de code door dit:
(vl-load-com)
;Setup and initialise the reactor
(VLR-DWG-Reactor "Save begin" '((:VLR-beginSave . purgeDrawing)))
(defun purgeDrawing (calling-reactor commandInfo / doc )
;; get the active drawing
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
;; Purge
(princ "\nStart purge")(princ)
(repeat 3 (vla-PurgeAll doc))
(princ "\nEinde purge")
(princ)
)
Dan zie je dat het wel gebeurd...
Beste EddyBeerke,
Bedankt voor jou hulp ook. Nu doet het inderdaad wat ik verwacht.
Hierbij verklaar ik deze topic als --> opgelost.
Gr.
Hepa,
Ter info: de functie vla-PurgeAll geeft geen feedback op de command line. Vandaar dat je dacht de functie niet werkt.
@Eddy: Dank voor je input :vreegoe:
gr.
Stephan