revisionswolke

revisionswolke

raumin
Contributor Contributor
828 Views
8 Replies
Message 1 of 9

revisionswolke

raumin
Contributor
Contributor

lisp hat unter 2020 funktioniert und unter 2021 nicht mehr. der erste punkt kann nicht definiert werden. 

 

--------------------------------------------------------------------------------------------

 

 

 

(defun c:uv_revwolke_001 ( / lay osm)

(setq lay (getvar 'clayer))
(setq osm (getvar 'osmode))
(setvar 'osmode 0)
(command "_.-layer" "_thaw" "Revision" "_Make" "Revision" "_Color" "t" "235,0,0" "" "")
(initcommandversion)
(command-s "_.revcloud" "_rectangular" "_arc" 2 2)
(setvar 'osmode osm)
(setvar 'clayer lay)
(command "_.pedit" "_last" "_width" 0.6 "")
(princ)
)

0 Likes
Accepted solutions (1)
829 Views
8 Replies
Replies (8)
Message 2 of 9

cadffm
Consultant
Consultant
Accepted solution

Du steuerst ja einfach nur einen AutoCAD-Befehl,

mit diesem (inicommandversion) gibst du an die aktuelle Version des nächsten Befehls benutzen zu wollen.

 

1. Schau dir an wie der Dialog zwischen deiner Steuerung und ACAD abläuft (dafür muß freilich CMDECHO=1 stehen)

  Also deine Funktion starten, durchklicken soweit es geht, dann im Textfenster nachsehen was da passiert [F2]

oder

2. Gehe per Hand die Eingaben durch, Befehl: _revcloud usw.

 

=

 

Dann siehst du den veränderten Befehlsablauf und was schief geht,

du sendest die letzte 2 als ersten Fensterpunkt.

demenstprechend kannst du dann auch den command-Ablauf anpassen.

 

Alternative:

Prüfe welche Command-Version die 2020er ist und gebe dies bei initcommandversion mit an,

es sollte die 2. Version sein 😉

Sebastian

0 Likes
Message 3 of 9

lena.talkhina
Alumni
Alumni

Hey everyone,
I am sorry I can't read German, but we can not move this thread there because there is no German LISP forum.

 

Do you mind to switch to English?

Or let me know if you would like to move this thread to the German community. Thanks!

Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.



Лена Талхина/Lena Talkhina
Менеджер Сообщества - Русский/Community Manager - Russian

0 Likes
Message 4 of 9

Sea-Haven
Mentor
Mentor

 Its not that hard, but maybe post request in two languages.

 

screenshot219.png

0 Likes
Message 5 of 9

lena.talkhina
Alumni
Alumni

No problem at all @Sea-Haven  until it what @raumin decision.

It should be helpful for all.

Unfortunately  our translator on forums works for English only so far, but I can add translation to the first post if needed. Just let me know...

 

Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям! | Do you find the posts helpful? "LIKE" these posts!
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.



Лена Талхина/Lena Talkhina
Менеджер Сообщества - Русский/Community Manager - Russian

0 Likes
Message 6 of 9

cadffm
Consultant
Consultant

I answered in detail what happen, how to solve it (by two ways),

the only thing i not posted is a read4use edited code.

Why?

 

For me 'Visual LISP, AutoLISP and General Customization forum' 

is a place to learn, instead to throwing fishes over and over or offered a whole meal on silver trays.

It's better to show how to fish.

 

BTW: I have the same opinion on poorly chosen thread headings;) [it's offtopic, not related to this thread]

 

 

Sebastian

0 Likes
Message 7 of 9

raumin
Contributor
Contributor

guten tag

weiss leider nicht was sie meinen..................

 

was muss ich in der lisp ändern damit es unter 2021 auch funktioniert?

 

0 Likes
Message 8 of 9

cadffm
Consultant
Consultant

Ui, das ist aber sehr pauschale Rückmeldung für meine detaillierte Antwort.

 

>>Du steuerst ja einfach nur einen AutoCAD-Befehl,

Alles was du innerhalb von (command .....) machst ist do nichts anderes wie ein Tastatureingabe zu automatisieren.

Soweit klar?

 

>>mit diesem (inicommandversion) gibst du an die aktuelle Version des nächsten Befehls benutzen zu wollen.

Kann man schlecht anders schreiben, siehe auch die entsprechende Seite der Hilfe[F1] zu initcommandversion

Für einige Befehlszeilen-Befehle kennt AutoCAD verschiedene Versionen (die Aktuelle und ältere),

In einem Makro,Script oder (send)command wird immer die älteste aufgerufen,

es sei denn du gibst an die aktuelle(innitcommandversion) oder eine andere nutzen zu wollen.

 

>>Schau dir an wie der Dialog zwischen deiner Steuerung und ACAD abläuft (dafür muß freilich CMDECHO=1 stehen)

CMDECHO auf 1 stellen ist klar? Wie jede andere Systemvariable auch, eintippen, bestätigen Wert setzen.

 

>>Also deine Funktion starten, durchklicken soweit es geht, dann im Textfenster nachsehen was da passiert [F2]

In der Befehlszeile oder dem Textfenster[F2] siehst du den Befehlsablauf inkl. der Werte welche du an die Befehlszeile sendest, also siehst du auch dort wo deine Eingab, welche du über command sendest, nicht passt

und was AutoCAD stattdessen möchte.

Demensprechend kannst du dann deine Eingabewerte im (command ...) ändern wie benötigt.

 

>> oder gehe per Hand die Eingaben durch, Befehl: _revcloud usw.

um zu sehen wie der aktuelle Ablauf des Befehls Revcloud ist kannst du auch einfach den Befehl starten

und dann mitschreiben welchen Befehlsablauf du benötigst..

 

=

 

Dann siehst du den veränderten Befehlsablauf und was schief geht,

du sendest die letzte 2 als ersten Fensterpunkt, denn es wird

überhaupt nicht nach min/max gefragt, sondern nur einmal nach der ca.-Bogenlänge.

 

Alternative:

Prüfe welche Command-Version die 2020er ist und gebe dies bei initcommandversion mit an,

es sollte die 2. Version sein

 

--------------

 

Also entweder änderst du nun den (command ...) Inhalt wie benötigt, was benötigt wird findest du durch Benutzung des Befehls Revcloud heraus,

ODER

du änderst  (initcommandversion) dahingehend das du die gewünschte Befehlsversion mit angibst.

Wie du in der Hilfe sehen kannst sieht der Syntax wie folgt aus:

(initcommandversion [version])
version

Type: Integer

This argument specifies the version of the command to be used. If this argument is not present, the next use (and next use only) of a supported command will initialize to the latest version.

 

 

Auch wenn es nicht so viele Versionen gibt und es für dich einfach durch testen zu ermitteln wäre.

Die gesuchte Befehlsversion sollte die 2 sein, also (initcommandversion 2)

 

An welcher Stelle hakt es, oder klapt es mit der Anpassung jetzt?

Sebastian

0 Likes
Message 9 of 9

raumin
Contributor
Contributor

super habe nur initcommandversion auf 2 geändert und schon hats funktioniert.