yoin

johan P

Ik ben een wandenboekje van een toren aan het tekenen. De bedoeling is dat ik per verdieping per wand een tekening maak.
per verdieping heb ik gemiddeld 26 wandaanzichten. d.m.v viewports print ik dit uit. Is het mogelijk dat je de viewport kopelt aan vierkant in mijn 'model'. zodat ik alle vierkanten (om een wand per verdieping) in mijn model een verdieping omhoog schuif en dat mijn viewports automatisch mee omhoog gaan?

Kan iemand mij hiermee helpen want dat bespaart nogal wat tijd.

Dank u

roy_043

Beste Johan,

Jouw verhaal is niet helemaal duidelijk. Wat bedoel je bijvoorbeeld met "vierkant"?

Doe je nu ongeveer dit:
- In de modeltekening heb je een totaal-wandaanzicht.
- In de layout heb je een viewport naar het begane grond-deel van dit wandaanzicht.
- Je maak een kopie van deze viewport of deze layout.
- Je schakelt naar mspace en zorgt dat de kopie-viewport actief is.
- Nu geef je het commando "pan":
  1e punt 0,0
  2e punt 0,-3000 (3000 is jouw verdiepingshoogte).
- Resultaat: het 1e verdiepingsdeel van het totaal-wandaanzicht staat goed in de kopie-viewport.


Het pan-commando kun je i.i.g m.b.v. een macro versnellen:
'_PAN;0,0;0,-3000;
Maar dan moet je nog steeds alle viewports langslopen.

Ik hoop dat dit jou al op weg helpt. Mogelijk heb je meer aan een lisp, maar dan moet je eerst wat extra info geven: geef een duidelijkere omschrijving van jouw probleem en voeg een voorbeeldtekening aan je bericht toe.

Groet, Roy.

johan P

Beste Roy,

Dank voor je reactie.

Nu kopieer de paarse rechthoeken uit mijn model naar mijn layout (zie bijlage). Hierin maak ik mijn viewport van de begane grond. Maar als ik nu de 1e verdieping moet hebben, dan moet ik al mijn viewports weer aanpassen naar de eerste verdieping.
Is het niet mogelijk om de viewports aan de paarse rechthoeken in mijn model te koppelen.Zodat ik dan in mijn model alle paarse rechthoeken naar de 1e verdieping kan verplaatsen en dat de viewports in mijn layout dan aotomatische meespringen.

Zie bijlage voor de screenshots van model en layout

groeten Johan

roy_043

Beste Johan,

Wat jij wilt is niet gemakkelijk en waarschijnlijk onmogelijk. Je wilt bepaalde rechthoeken verschuiven in de modeltekening en de viewports die op de een of andere manier gekoppeld zijn aan die rechthoeken, moeten dan vanzelf meeschuiven (d.w.z. hun view center point moet verschuiven). Maar dat verschuiven moet dan alleen gebeuren voor de nieuw layouts. Oude layouts die gekoppeld zijn aan de rechthoeken mogen niet wijzigen (althans dat denk ik).

De bijgevoegde lispfunctie lost jouw probleem voor een deel op.
De werkwijze is als volgt:

1. Maak eerst een kopie van de tekening en test de lispfunctie eerst met deze kopie!
2. Open dus de kopie van de tekening.
3. Maak een kopie van 2 of 3 layouts voor de nieuwe verdiepingen.
   De layout "Wand 5.1_II" wordt gekopieerd naar "Wand 5.1_III" enz.
4. Laad de lisp.
5. Geef het command VCV.
6. Selecteer alle viewports die in alle nieuwe layouts moeten verschuiven.
7. En geef de gewenste verschuivingen op.
8. De lisp moet nu zijn werk doen.
9. De de waardes van de opgegeven verschuivingen worden gedurende de tekensessie bewaard.


Deze lisp is getest in Bricscad 7. Laat even weten of de lisp bij jou werkt (o.v.v. de Autocadversie).

Groet, Roy.

roy_043

Beste Johan,

In HPmenu kom ik de functie LAR tegen die dichter in de buurt komt van wat jij wilt.

Citaat van: HPmenu Help
Met LAR kan een layout automatisch een ingesteld aantal keer worden gekopieerd, terwijl tegelijk het beeld in de viewport opgeschoven wordt. Hiermee kan bijvoorbeeld een groot aantal layoutbladen gemaakt worden van verschillende details of plattegronden, wanneer deze onderling maar op dezelfde afstand in de ModelSpace getekent staan.

Ga in de te kopieren paperspace layout staan; deze wordt gekopieerd. De volgorde van de layouts moet misschien nog worden aangepast.

Als LAR het verkeerde resultaat geeft (bijvoorbeeld enkel een gesloten offset-polyline), doe het dan opnieuw en neem de gehele polyline in beeld alvorens LAR uit te voeren.

Hieraan kan worden toegevoegd:

  • De functie is bedoeld voor layouts met 1 viewport.
  • Let op: de nieuwe layouts krijgen een vaste naam gebaseerd op die van de originele layout en een doornummering. De functie controleert daarbij niet of een layout met die naam al bestaat.


(defun c:LAR (/ layoutnaam aantal xafstand yafstand teller verplaatspunt nieuwelayoutnaam xtotaal ytotaal rm)

(setq layoutnaam (getvar "ctab")
      rm (getvar "regenauto"))



(if (= layoutnaam "Model") (princ "\nYou're in modelspace. First switch to layout you like to array.")
    (progn
      (setq aantal (getint "\nHow many new layouts do you want to create [1]: "))
      (if (not aantal) (setq aantal 1))
      (setq xafstand (getreal "\nWhat's the fixed x-distance between your views [0]: "))
      (if (not xafstand) (setq xafstand 0.0))
      (setq yafstand (getreal "\nWhat's the fixed y-distance between your views [0]: "))
      (if (not yafstand) (setq yafstand 0.0))
      (setq    teller 0
           xtotaal xafstand
           ytotaal yafstand
                  )
       
       (command "regenauto" "off")
       (princ "\nThis will take some time....")
       (while (< teller aantal)
       
       (setq verplaatspunt (list xtotaal ytotaal 0.0))
       
       (setq nieuwelayoutnaam (strcat layoutnaam " " (chr 40) (rtos (+ teller 2) 2 0) (chr 41) ))
       
       (command "layout" "c" layoutnaam nieuwelayoutnaam)
       (command "layout" "s" nieuwelayoutnaam)
       (command "mspace")
       (command "pan" verplaatspunt "0,0,0")
       (command "pspace")
       (command "layout" "s" layoutnaam)
                   
       (setq teller (+ teller 1)
             xtotaal (+ xtotaal xafstand)
             ytotaal (+ ytotaal yafstand)
        )
       )
     
    (command "regenauto" rm)

    )
)
)


Groet, Roy.