yoin

Manu

Bestaat er een manier om een gehele tekening te verschalen waarbij je een verschillende schaalfactor opgeeft voor de X én de Y richting?
Daarboven dient - vanwege de preciesie- de schaalfactor bepaald te worden mits een 'referentielengte' en een 'nieuwe' lengte.

groeten,

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

julien

Is dit niet te doen via een 'insert'?

bart

verschillend verschalen kan door er een block van te maken
en deze te inserten met een verschillende x,y (en eventueel z)

daarna kan je het block opblazen en je hebt het in twee richtingen aangepast.

Invoer is wel nummeriek dus je zal de verschaling eerst moeten meten
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Manu

Bart en Julien, die methode had ik reeds geprobeerd, doch nét die nummerieke schaalbepaling speelt me parten... die kan je wel uitrekenen maar die zal
- vanwege de afrondingsfactor- nooit écht precies zijn. Ik zoek naar een meer geavanceerde 'scale'-bewerking.
Misschien via een lisp.. voelt zich iemand geroepen?

groeten,

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Joop

Manu schrijft:

CiteerDaarboven dient - vanwege de preciesie- de schaalfactor bepaald te worden mits een 'referentielengte' en een 'nieuwe' lengte.

Als je verschillend in de X- en Y-richting wilt verschalen zul je twee referentielengtes nodig hebben niet een.

Op zich is dat niet moeilijk te realiseren.
>> Bepaal de twee referenties en sla deze op in variabelen.
>>insert zonder GUI als blok en geef het commando de varabelen als scale factor.

Simpel.  :mrgreen:
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Manu

Beste Joop,

Bedankt voor je reactie .. maar helaas is mijn kennis van LISP veel te beperkt om je advies om te zetten in iets bruikbaars..
Ik dien me in die LISP-materie écht wel eens te verdiepen... :wink:

groeten,

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

bart

Citaat van: Manu op wo 10 05 2006, 12:11:38
Bart en Julien, die methode had ik reeds geprobeerd, doch nét die nummerieke schaalbepaling speelt me parten... die kan je wel uitrekenen maar die zal
- vanwege de afrondingsfactor- nooit écht precies zijn. Ik zoek naar een meer geavanceerde 'scale'-bewerking.
Misschien via een lisp.. voelt zich iemand geroepen?

groeten,

Manu

je kan even nauwkeurig meten als autocad een referentie kan nemen
zet de reverentie lijnen (2  per richting) en bepaal de lengte hiervan met list (maximaal 8 cijfers achter de komma) is maximale invoer

als 8 cijfers je niet voldoende is schaal alles daan eerst op met bijvoorbeeld 1000 (maximaal 10^8 hoger heeft geen zin want dan krijg je er alleen nullen bij achteraf is deze factor er weer uit te halen, het opschalen zorgt voor het verplaatsen van de comma)


ps  ben je met een scan bezig of zo ?

je bereikt dan een veel beter resultaat door een combinatie van scale en stretch toe te passen op de door jezelf getekende lijnen op je onderlegger
Als je scan orgineel niet schaalvast is dan is deze vervorming toch niet af te vangen met alleen een x en y waarde
deze zijn namelijk niet constant over het vel papier de randen vervormen anders dan het midden
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Manu

Nee Bart, geen geknoei met scans e.d., maar ik ontving een (oud) grondplan die wellicht niet in Autocad is getekend.
Sommige 3Dtekenpaketten genereren wel dwg's, maar die kunnen tekeningen aanmaken die niet lineair verschaald zijn
om die dan zo makkelijker op papier te krijgen... (een voorbeeld van zo'n pakket zou X-steel kunnen zijn)
Conclusie : een dwg die zowel in X als in Y-richting, én beide met een andere schaalfactor, verschaald is..
By the way, ik kan de originele tekening onmogelijk opvragen want de firma bestaat wellicht niet meer.

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Joop

#8
Wat dacht je hiervan:


(defun c:SS ()
   (setq BlockName (getfiled "select block to insert: " "" "dwg" 8))
   (setq XScaleFactor (getdist "Get X distance"))
   (setq YScaleFactor (getdist "Get Y distance"))
   (setq ZScaleFactor 0)
   (command "-insert" BlockName "0,0,0" XScaleFactor YScaleFactor ZScaleFactor "0")
)


Correctie: Typefoutje. Geen gevolgen voor werking.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Manu

Heel mooi Joop, alleen wordt de schaalfactor opnieuw bepaald door iets wat ik zelf ingeef en niet door een vergelijking van een
referentielengte met een nieuwe lengte... of zie ik dat verkeerd?
Ik denk eerder aan een normaal scale commando maar dan met een refentie- en nieuwe lengte voor X en Y.
Maar ik ben wel onder de indruk van de souplesse waarmee je zo'n lisp-je in mekaar steekt... :ole:

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Joop

Hiermee kom je weer een stukje verder:


(defun c:SS ()
   (setq BlockName (getfiled "Select block to insert: " "" "dwg" 8))
   (setq BasePoint (getpoint "\nSelect base point: "))
   (setq CurrentXLength (getdist BasePoint "\nGet old X distance"))
   (setq NewXLength (getdist BasePoint "\nGet new X distance"))
   (setq XScaleFactor (/ NewXLength CurrentXLength))
   (setq CurrentYLength (getdist BasePoint "\nGet old Y distance"))
   (setq NewYLength (getdist BasePoint "\nGet new Y distance"))
   (setq YScaleFactor (/ NewYLength CurrentYLength))
   (setq ZScaleFactor 0)
   (command "-insert" BlockName BasePoint XScaleFactor YScaleFactor ZScaleFactor "0")
)


Dit werkt nu alleen met referentielengtes.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Manu

Driewerf hoera voor Joop !!  :pintje: :pintje: :pintje:
Je lisp heeft me van een pák kopzorgen verlost.. fijn dat je zo snel reageerde !

groeten,

Manu
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Joop

Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

rlouage

En waarom gebruik je de calculator niet? Eenvoudig toch en rekent ook tot op 16 cijfers na de komma.

vb: cal;  exp: L=DEE    (l = variable, dee is de afstand tussen 2 endpoints)

dan   cal; H=DEE     (hoogte idem als hiervoor)

de beide variabelen l en h kunnen nu gebruikt worden in het commande -insert
om de variabele daarin te gebruiken tik  'cal .

Eenvoudig toch,

Robrecht

Joop

Robrecht,

het gaat hier niet om de afstand tussen 2 endpoints, maar over de verhouding tussen twee afstanden, en dat voor zowel x- als y-richting (en eventueel z-richting).
Deze verhouding = scale factor.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

FastFiber