CADsite

  • vr 27 01 2023, 08:32:49
  • Welkom, gast
Log in of registreer jezelf.

Login met gebruikersnaam, wachtwoord en sessielengte
Geavanceerd zoeken  

Nieuws:

Pagina's: 1 [2]   Omlaag

Auteur Topic: mijn 1e macro  (gelezen 657 keer)

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #15 Gepost op: di 20 12 2022, 15:03:00 »

hoe zou zoiets eruit komen te zien in LIsp dan, ga ik me daarin verdiepen

de manier zoals ik het nu doe met SHIFT+rechter muis geeft dit weer in het commandoscherm:

MOVE
Select objects: 1 found
Select objects:
Specify base point or [Displacement] <Displacement>:
Specify second point or <use first point as displacement>:
>>Enter new value for ORTHOMODE <1>:
Resuming MOVE command.
Specify second point or <use first point as displacement>: _from Base point: <Offset>: 50
« Laatst bewerkt op: di 20 12 2022, 15:29:17 door matizje »
Gelogd

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #16 Gepost op: di 20 12 2022, 15:53:03 »

Als je bij "specify second point or <use first point as displacement>:" @50,0 invult, dan krijg je een verschuiving van 50 eenheden in positieve richting op de X-as. Vul je @0,-50 in, dan krijg je een verschuiving van 50 eenheden in negatieve richting op de Y-as. Vul je @50,50 in dan krijg je een verschuiving van +50 eenheden op de X-as en +50 eenheden op de Y-as. Het is hierbij niet van belang wat je als base point kiest.
Is dat misschien wat je in gedachten had?
« Laatst bewerkt op: di 20 12 2022, 16:26:55 door gery »
Gelogd
AutoCAD 2020 - Windows 10

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #17 Gepost op: di 20 12 2022, 21:04:05 »

ik wil het aantal eenheden pas invoeren bij het uitvoeren van de macro. Dus ik selecteer een lijn, geef het basepoint van deze lijn aan. Vervolgens wil ik een punt op een andere lijn aangeven wat als basis dient voor de verplaatsing en dan pas het aantal eenheden van de verplaatsing.
Gelogd

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #18 Gepost op: di 20 12 2022, 22:55:17 »

Ik vrees dat ik je niet helemaal begrijp.
Gelogd
AutoCAD 2020 - Windows 10

Reimer

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 1336
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #19 Gepost op: wo 21 12 2022, 15:08:20 »

...
^C^C_.move \ _.from \\
...
Volgens mij kan dit wel maar moet je een paar dingen wijzigen.
Geen punt bij _from
Na Move wil je een object selecteren en volgens mij ook eerst een startpunt kiezen (als ik je uitleg goed heb begrepen)
^C^C_.move \\\_from \\
Zelf ben ik fan van Lisp en denk ik dat je daar meer plezier van kunt hebben wanneer je meer van dit soort dingen wilt gaan automatiseren.

Groeten,
Reimer.
Gelogd

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #20 Gepost op: do 22 12 2022, 08:59:57 »

Reimer,

dat is 'm, het werkt.  BEDANKT!!!!!!!!!!!!!!!
Gelogd

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #21 Gepost op: vr 23 12 2022, 11:08:42 »

Reimer,

ik heb iets te vroeg gejuicht. Ik kan met deze macro maar 1 object selecteren en geen meerdere. Als ik meerdere objecten achter elkaar selecteer kopieert ACAD deze object niet vanaf het 2 basepoint maar van de orginele positie. Hoe kan ik dit aanpassen?
Gelogd

bart

  • Forum medewerker
  • forumverslaafde
  • *****
  • Offline Offline
  • Berichten: 2151
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #22 Gepost op: vr 23 12 2022, 13:20:17 »

Als je een macro maakt probeer dan eerste of je de actie op je scherm voor elkaar krijg.
En macro is vooral een aantal opeenvolgende commando's
via diesel kan er wat intelligentie in maar dat is beperkt.

move is een verplaatsing over een vector.
alle objecten ondergaan de zelfde verplaatsing.
als je meerdere objecten wilt verplaatsen met een andere vector moet je meerder keren move gebruiken dan kan het niet in 1 keer
Gelogd
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #23 Gepost op: vr 23 12 2022, 14:41:49 »

het gaat om objecten(2 lijnen) die tegelijk verplaatst moeten worden op de zelfde vector
Gelogd

Reimer

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 1336
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #24 Gepost op: vr 23 12 2022, 15:58:45 »

De backslash staat voor één gebruikersinvoer. (hier: selecteer een object, beëindig de selectie, kies punt 1).
Als je meer objecten wilt selecteren dan moet je extra backslashes toevoegen.  Hoe het gaat met bijvoorbeeld een crossing selection weet ik zo even niet.
Dit is meteen de beperking van een macro/script. Met lisp kun je dit beter programmeren.

Reimer.
Gelogd

matizje

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 13
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #25 Gepost op: vr 23 12 2022, 16:54:11 »

thx, het werkt nu naar behoren
Gelogd

bart

  • Forum medewerker
  • forumverslaafde
  • *****
  • Offline Offline
  • Berichten: 2151
    • Bekijk profiel
Re: mijn 1e macro
« Reactie #26 Gepost op: vr 23 12 2022, 17:31:50 »

je kan je macro ook beginnen met select en can bijvoorbeeld een crossing dan is het aantal elementen flexibel
Gelogd
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

EddyBeerke

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 2434
  • 1d CADSITE.be niet bezoeken = 1 dag niet geleefd!
    • Bekijk profiel
    • Mijn site
Re: mijn 1e macro
« Reactie #27 Gepost op: vr 20 01 2023, 14:32:18 »

hoe zou zoiets eruit komen te zien in LIsp dan, ga ik me daarin verdiepen

de manier zoals ik het nu doe met SHIFT+rechter muis geeft dit weer in het commandoscherm:

MOVE
Select objects: 1 found
Select objects:
Specify base point or [Displacement] <Displacement>:
Specify second point or <use first point as displacement>:
>>Enter new value for ORTHOMODE <1>:
Resuming MOVE command.
Specify second point or <use first point as displacement>: _from Base point: <Offset>: 50


Is dit misschien wat je wil?
Maak een lsp-file van onderstaand, laad het in Autocad en start het commando "mm"
;;;Move Multiple
(defun c:mm  (/ ss1 L1 L2)
  (setq ss1 (ssget))
  (while (setq L1 (getpoint "\nWijs Basis point (1) aan: "))
    (setq L2 (getpoint L1 "\nWijs Referentie punt (2) aan: "))
    (command "MOVE" ss1 "" L1 L2)
  ) ;_ end of while
  (princ)
) ;_ end of defun

Gelogd
Pagina's: 1 [2]   Omhoog