FastFiber

Vierkant met acering in één handeling OPGELOST

Gestart door thijss, vr 06 11 2009, 08:45:44

Vorige topic - Volgende topic

thijss

Ik moet in een tekening een groot aantal vlakken aangeven, middels een omtrek met een acering.
Nu heb ik rond gekeken op het forum en gezien dat dit moet kunnen met een lisp; kan het ook met een macro, of nog simpeler een block?

De minimale functionaliteit die ik zoek is een rechthoek met acering. Het mooiste is een dat ik twee evenwijdige lijnen kan tekenen waaraan ik een onderlinge afstand meegeef en die automatisch worden gesloten en ingevuld met een arcering (solid).

Kunnen jullie mij helpen?

Ik gebruik LT2007 dus lisps zijn lastig

H@rm

thijss,

Ik heb wel een lisp voor je. Als je hem in LT aan het werk krijgt dan prik je linksonder en rechtsboven een punt . Dan wordt er een rechthoek getekend en een arcering ingeplaatst.
Wellicht met een beetje knutselen dat je er wat aan hebt.

Michel
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

Reimer

Als ik jou zo hoor kun je ook met een dynamisch block gaan werken. Ik heb een voorbeeldje gemaakt maar deze kan ik momenteel niet op het forum plaatsen i.v.m. te weinig ruimte. Misschien kan ik je een mailtje sturen? Mail me dan even op het adres onder mijn naam aan de linker kant.

Reimer.

roy_043

Het kan in LT met een macro in combinatie met een block.
Het block moet 1x1 drawing unit groot zijn met het insertion point linksonder.
Macro (met rotation angle 0):
^C^C_.-insert;myBlock1x1;\_corner;\0;
Macro (rotation angle opgeven):
^C^C_.-insert;myBlock1x1;\_corner;
(macro's getest op BC7)

Dit werkt natuurlijk alleen goed bij solid arceringen en 2D solids. Lijnarceringen worden door het verschalen van het block vervormd weergegeven.

Tips:

  • Als je het block goed opbouwt (alles op laag 0 en color byBlock) dan kun je één block voor alle lagen en kleuren gebruiken.
  • Maar het kan ook handig zijn om per kleur een apart block te gebruiken. In dat geval kun je per kleur een aparte macro maken.

Mogelijk alternatief is werken met dynamische blocks. Hierover kan ik je geen advies geven: in Bricscad kun je geen dynamische blocks maken. Maar terwijl ik dit schrijf zie ik dat Reimer hier al op ingaat. Hou er rekening mee dat dynamische blocks de tekening zwaar kunnen belasten: in feite wordt voor elke block-plaatsing een uniek anoniem block gebruikt (als ik het tenminste goed heb begrepen).

thijss

Ik heb het macro ingevoerd en dit werkt prima. Het lukt me alleen niet om het block goed op te slaan. Hoe kan ik aangegeven waar ik het wil opslaan, nu gaat dit alleen per tekening.

roy_043

#5
Commando: wblock.

Als je het block niet in het zoekpad van het cad-programma opslaat dan moet je het pad opnemen in de macro's.
Bijvoorbeeld:
^C^C_.-insert;c:/allMyBlocks/myBlock1x1;\_corner;
<EDIT>Het pad opnemen in de macro is toch geen goed idee. Je moet dan steeds de vraag: "Do you want to redefine it?" beantwoorden. Sla het block dus op in het zoekpad, of pas het zoekpad aan.</EDIT>

thijss


thijss

Dit topic is voor mij weer actueel, het macro werkt niet meer goed na een overstap op LT2009.

Ik heb:
- een nieuwe knop aangemaakt met het volgende macro: ^C^C_.-insert;myBlock1x1;\_corner;\0;
- een block gemaakt van 1 bij 1 met een solid arcering

Probleem:
Bij het plaatsen wordt het block alleen verschaalt en kan ik geen rechthoek maken.

Wat kan ik hieraan doen?

roy_043

De oorzaak is dat Autodesk, tot frustratie van velen, af en toe "speelt" met de volgorde van de prompts.
Ik vind hier:
http://blog.jtbworld.com/2009/03/initcommandversion-and-r-control.html
...dat dit zou kunnen helpen:
^C^C^R_.-insert;myBlock1x1;\_corner;\0;

Als dit niet werkt dan is het handig als jij het commando -insert (dus met een streepje ervoor), met de optie corner, stap voor stap doorloopt en de command-history in jouw volgende bericht weergeeft.

thijss

Het werkt niet met de extra ^R is dit wat je bedoelde met de command history?

Command: _.-insert
Enter block name or [?] <myBlock1x1>: myBlock1x1
Units: Millimeters   Conversion:    0.0394
Specify insertion point or [Basepoint/Scale/Rotate]: Specify scale factor <1>:
_corner
Requires numeric distance or second point.
Specify scale factor <1>:
Specify rotation angle <0>:

roy_043

#10
Ja dit is wat ik bedoel met command-history... Maar we zijn nog niet veel dichter bij een oplossing.

Een probleem dat een rol kan spelen is de instelling van de tekening-variabele INSUNITS. In jouw werktekening is deze ingesteld op mm. Maar in myBlock1x1.dwg is deze ingesteld op inches. Open myBlock1x1.dwg en geef in:
INSUNITS
0 (d.w.z. nul: geen units ingesteld)
En natuurlijk opslaan.

Probeer de macro (met of zonder ^R :mrgreen:) dan nog eens in een tekening waarin het block nog nooit is ge-insert.

Voor info over het -insert commando:
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%202010%20User%20Documentation/files/WS1a9193826455f5ffa23ce210c4a30acaf-4ac0.htm
Hier is sprake van deze prompt:
Specify scale factor or [Corner/XYZ] <1>:

thijss

Nou ik heb het aangepast maar het werkt nog niet, command history:

Command: _.-insert
Enter block name or [?]: myBlock1x1
Units: Inches   Conversion:    1.0000
Specify insertion point or [Basepoint/Scale/Rotate]: Specify scale factor <1>:
_corner
Requires numeric distance or second point.
Specify scale factor <1>:
Specify rotation angle <0>:  <Ortho on>


Voor de duidelijkheid de procedure:

Als ik op mijn aangemaakte knop klik dan wordt eerst gevraagd naar het insertion point,
vervolgens kan ik het block verschalen. Hier gaat het mis, bij het verschalen wordt de lengte en breedte in de vaste verhouding gehouden. Terwijl ik in een rechthoek het volgende wil:

1. insertionpoint is hoek 1
2. hoek 2 ligt op de anderzijde van de diagonaal
3. hele rechthoek gearceerd.

roy_043

Het is merkwaardig om soms in een tekening te werken die is ingesteld op inches (zoals in jouw bericht van vandaag) en soms in een tekening ingesteld op mm (zoals in jouw bericht van 25-02-2010). Je maakt het jezelf hierdoor alleen maar moeilijk (arcering en lijntypes zijn verschillend gedefinieerd voor deze instellingen).

Afijn... Terug naar het probleem:
Probeer dit eens:
^C^C_.-insert;myBlock1x1;\\0;

thijss

Het werkt niet, de output blijft gelijk. Is er een andere methode?


Subvraagje
Die inches snap ik nog niet helemaal, ik open een standaard acadlt layout en die staat kennelijk in inches.
De user preferences/insertion scale staat wel op millimeters. Het commando UNITS geeft inches. Hoe kan ik de millimeters correct instellen?



roy_043

Citaat van: thijss op wo 03 03 2010, 16:55:09Het werkt niet, de output blijft gelijk.
De optie "corner" is uit de macro gehaald. Dus hoe kan de output dan gelijk blijven???

Citaat van: thijss op ma 01 03 2010, 10:28:18bij het verschalen wordt de lengte en breedte in de vaste verhouding gehouden.
Ik concludeer hieruit dat je steeds een vierkant krijgt. Of bedoel jij dat je een rechthoek krijgt maar alleen groter/kleiner dan de bedoeling is.

Post jouw myBlock1x1.dwg eens.

yoin