Hallo allemaal,
Ik zou graag een macro willen schrijven, zodat ik via één knop alle blocks in mijn tekening op layer 0 heb staan. Ik heb al verscheidene macro's aangemaakt, zoals bv bij het invoegen van een X-ref de ucs automatisch in world staat en de xref op de kuiste x-ref layer.
Echter de blocks op laag 0 zetten lukt me niet meteen.
Ik zou eerst enkel de blocks moeten kunnen selecteren, en ze daarna op layer 0 moeten plaatsen.
Iemand ideeën?
Bedankt!
Kijk hier eens, http://www.cadsite.be/smf/index.php?topic=4115.0, misschien kan dit wel helpen
mvg
Rudy
je kunt hiervoor SSX gebruiken (Express tools commando). Na het starten van SSX kies je voor de optie Block. Vervolgens voor de naam *. Alle blocks worden nu geselecteerd. Start vervolgens CHPROP en geef als selectie P op (previous). Plaats vervolgens de selectie op laag 0.
Reimer
Citaat van: Rudy op ma 03 06 2013, 10:38:25
Kijk hier eens, http://www.cadsite.be/smf/index.php?topic=4115.0, misschien kan dit wel helpen
Of wat dacht je van Quick Select en dan in de layer control layer 0 selecteren
Helaas nog niet gevonden wat ik zocht, maar in elk geval super hard bedankt voor de tips!
Met een Macro is dit volgens mij wel erg lastig.....
Misschien moet je een stukje scripten.
Heb je al eens naar het Filter commando gekeken? (Misschien hetzelfde als SSX, maar je kunt visueel zien wat je doet en je kunt relatief snel blocken selecteren)
Voor de duidelijkheid
Gaat het er om
het block als zijn geheel in laag 0 te krijgen
(alsof deze is geinsert met laag 0 als current layer)
tip! gebruik dan niet laag 0 maar maak een laag aan met een eigen naam
Of wil je de inhoud van de blocks op laag 0 hebben
en dan waarschijnlijk juist niet de insert layer
(bij deze optie neemt het block de eigenschappen van de layer aan waarop je hem insert)
Als ik de vraag goed lees, dan gaat het om alle blocken die in de tekening staan.
Deze moeten allemaal op laag 0 staan.....
Beste Cad_user86,
Bedoel je deze macro:
^C^C(command "_.CHPROP" (setq ss (ssget "_X" '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil)
of als alternatief
^C^C(command "_.CHANGE" (setq ss (ssget "_X" '((0 . "INSERT")))) "" "_P" "_LA" "0" "")(setq ss nil)
Als je blocks zelf wil selecteren:
^C^C(command "_.CHPROP" (setq ss (ssget '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil)
of als alternatief
^C^C(command "_.CHANGE" (setq ss (ssget '((0 . "INSERT")))) "" "_P" "_LA" "0" "")(setq ss nil)
Met vriendelijke groet, HofCAD CSI.
Hofcad vraagje, selecteert jou marco ook Dynamische blocken?
Bedankt allemaal voor de reactie.
HofCAD, ik probeer zo snel mogelijk je macro's uit, als het op werk even rustiger is.
De bedoeling is inderdaad om alle blocks in hun gehele op layer 0 te krijgen.
Dit volgens afspraken binnen het bedrijf, dus een nieuwe layer aanmaken hiervoor is uit den boze :-)
Grtz!
Citaat van: hulpje op do 06 06 2013, 00:25:14
Hofcad vraagje, selecteert jou marco ook Dynamische blocken?
Beste Hulpje,
Een ingevoegd Dynamische block is toch ook een block reference!
Dus het antwoord is Ja.
Met vriendelijke groet, HofCAD CSI.
Beste HofCAD,
Uiteraard heb ik alle vertrouwen in jouw kennis en kunde op CAD gebied! :D
Ik heb alleen de ervaring, dat als je bijv. het commando BLOCKREPLACE gebruikt, je dan geen dynamisch block kunt "picken".
Maar deze macro werkt prima en heb ik al aan mijn toolbar toegevoegd!
"Als je blocks zelf wil selecteren:
Code: [Selecteer]
^C^C(command "_.CHPROP" (setq ss (ssget '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil) "
Beste HofCAD
Ik heb Hofcad zijn macro ingeladen, en volgens de eerste test werk die perfect.
Voorlopig opgelost, maar argumenteer gerust nog wat verder :vreegoe: :police:
Bedankt
Citaat van: hulpje op do 06 06 2013, 10:26:24^C^C(command "_.CHPROP" (setq ss (ssget '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil) "
Op welke manier moet dit ingeladen worden?
Als ik deze opdracht copier in de commandoregel krijg ik steeds een fout ... :roll:
Citaat van: Rudy op do 06 06 2013, 15:25:44
Op welke manier moet dit ingeladen worden?
Als ik deze opdracht copier in de commandoregel krijg ik steeds een fout ... :roll:
Dit zet je in de macro van een knop.
Citaat van: Rudy op do 06 06 2013, 15:25:44
Op welke manier moet dit ingeladen worden?
Als ik deze opdracht copier in de commandoregel krijg ik steeds een fout ... :roll:
Beste Rudy,
Op de commando regel moet je dit plakken:
(command "_.CHPROP" (setq ss (ssget '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil)
Voor een knop, maak je in het dialoogvenster van het commando CUI
een nieuw commando!
In dit nieuwe commando zet je de macro:
^C^C(command "_.CHPROP" (setq ss (ssget '((0 . "INSERT")))) "" "_LA" "0" "")(setq ss nil)
Dit nieuwe commando sleep je naar een eventuele nieuwe toolbar
of naar een plaats in het ribbon menu.
Zie de link:
http://www.cad-notes.com/2009/08/creating-new-command-in-autocad/
Het zou een goede investering zijn als je het volgende boek zou kopen:
ir. R. Boeklagen AutoCAD 2012 Computer Ondersteund Ontwerpen â,¬ 59,50
Met vriendelijke groet, HofCAD CSI.
Hier zal je zeker vinden wat je nodig hebt:
http://www.cadsite.be/smf/index.php?action=dlattach;topic=5315.0;attach=2966