Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  Lisp-Unterschiede zu ACAD

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD
Autor Thema:  Lisp-Unterschiede zu ACAD (2357 mal gelesen)
Arcuso
Mitglied
Vermessung


Sehen Sie sich das Profil von Arcuso an!   Senden Sie eine Private Message an Arcuso  Schreiben Sie einen Gästebucheintrag für Arcuso

Beiträge: 70
Registriert: 25.07.2011

Windows 7/64 prof.
AutoCAD 2011
BricsCad v12

erstellt am: 15. Dez. 2011 09:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo !
Ich habe festgestellt, dass in BricsCAD die Funktion
(vla-InsertBlock *ms* *ip* *ff* ....)
nicht so wie in AutoCAD eine vorhandene Block-Definition erneuert, dazu muss die herkömmliche Funktion
(command "_INSERT" [Blockname=Filename] ....)
verwendet werden.
Existiert eigentlich eine Liste jener Lisp-Funktionen, deren Verhalten von der ACAD-Version abweicht? Vielleicht gibt es auch Abweichungen zwischen BricsCAD V11 und V12?
MfG Arcuso

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arcuso
Mitglied
Vermessung


Sehen Sie sich das Profil von Arcuso an!   Senden Sie eine Private Message an Arcuso  Schreiben Sie einen Gästebucheintrag für Arcuso

Beiträge: 70
Registriert: 25.07.2011

Windows 7/64 prof.
AutoCAD 2011
BricsCad v12

erstellt am: 16. Dez. 2011 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo !
Habe weiteren Unterschied zu ACAD entdeckt:
Weder mit
(redraw Attrib-Entity 3) noch mit
(vla-Highlight Attrib-Object 3)
lässt sich bei BricsCAD ein Attribut separat vom Block ausleuchten.
Ausserdem ist generell das Ausleuchten strichliert nicht möglich sondern nur mit Fett-Darstellung.
MfG Arcuso

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arcuso
Mitglied
Vermessung


Sehen Sie sich das Profil von Arcuso an!   Senden Sie eine Private Message an Arcuso  Schreiben Sie einen Gästebucheintrag für Arcuso

Beiträge: 70
Registriert: 25.07.2011

Windows 7/64 prof.
AutoCAD 2011
BricsCad v12

erstellt am: 20. Dez. 2011 08:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo !

Ebenso merkwürdig:
Ich erhalte bei der Wahl eines Blockes den Objectnamen der Referenz:
(setq bo (vlax-ename->vla-object (car (entsel)))) ->
#<VLA-OBJECT IAcadBlockReference 0231dd18>

und eine Liste mit den Objectnamen seiner Attribute:
(setq al (vlax-safearray->list
          (vlax-variant-value (vla-getAttributes bo))
        )
) ->
(#<VLA-OBJECT IAcadAttributeReference2 022dad20>
#<VLA-OBJECT IAcadAttributeReference2 02365c30>
#<VLA-OBJECT IAcadAttributeReference2 0224ac38>
)

Bei direkter Wahl eines Attributes erhalte ich auch einen Objectnamen:
(setq ao (vlax-ename->vla-object (car (nentsel)))) ->
#<VLA-OBJECT IAcadAttributeReference2 022dad20>

Nun will ich die Position des gewählten Attributes feststellen:
(vl-position ao al)
und erhalte in ACAD wie erwartet 0, in BCAD jedoch nil !

Die Erkenntnis macht mich stutzig und ich prüfe weiter:
(member ao al) -> nil

Trotzdem wird dasselbe Object angesprochen:
(= (vla-get-Handle ao) (vla-get-Handle (car al))) -> T
(= (vla-get-ObjectID ao) (vla-get-ObjectID (car al))) -> T

Umweg über die Entitynames:

(member
  (vlax-vla-object->ename ao)
  (mapcar 'vlax-vla-object->ename al)
) ->
(<Entity name: 0239d060>
<Entity name: 0239d0a0>
<Entity name: 0239d1a0>
)

Gültig auch:
(vl-position
  (vlax-vla-object->ename ao) (mapcar 'vlax-vla-object->ename al)
) -> 0

Der Umweg über Strings ist zwar sicher aber nervig:

(= (vl-princ-to-string ao) (car (mapcar 'vl-princ-to-string al)))
-> T
(eq (vl-princ-to-string ao) (car (mapcar 'vl-princ-to-string al)))
-> T

Bei uns haben sich in 20 Jahren über 2000 Lisp-Befehle und Sub-Funktionen angesammelt, die ich nun für eine geplante Umstellung auf BricsCAD ausmisten bzw. anpassen will.
Obige Feststellungen erschweren das gewaltig, weil es erwarten lässt, dass es noch einige andere Abweichungen beim Verhalten im Gegensatz zu ACAD gibt.
Daher nochmals meine Frage an jene, die sich schon länger mit BricsCAD und Lisp beschäftigen, ob es ev. eine Liste bereits bekannter Stolpersteine gibt.

Danke
MfG Arcuso

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

PixelMission
Mitglied
Designer


Sehen Sie sich das Profil von PixelMission an!   Senden Sie eine Private Message an PixelMission  Schreiben Sie einen Gästebucheintrag für PixelMission

Beiträge: 31
Registriert: 17.12.2011

erstellt am: 20. Dez. 2011 09:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo Arcuso ...

Bei der Umstellung einer meiner URALT-Applikationen fiel mir auf, dass die Auswahl "_si" in BC (leider) nicht existiert. Aus der Patsche geholfen hat mir - wer sonst: T. Moses ...

"_saveas" ist m. E. auch ein "wenig" gewöhnungsbedürftig ...

Nun arbeite ich nicht mit ...vl..., sondern seit mehr als 25 Jahren nur mit dem "normalen" Code - daher gibt es bei meinen Routinen wahrscheinlich auch weniger "Probleme"?!

Über die Feiertage habe ich ein wenig Luft ... ich schaue mir mal verschärft alte Routinen an und gelobe, hier alles preiszugeben, was NICHT funktioniert!

Gruß: WB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arcuso
Mitglied
Vermessung


Sehen Sie sich das Profil von Arcuso an!   Senden Sie eine Private Message an Arcuso  Schreiben Sie einen Gästebucheintrag für Arcuso

Beiträge: 70
Registriert: 25.07.2011

Windows 7/64 prof.
AutoCAD 2011
BricsCad v12

erstellt am: 20. Dez. 2011 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für die Anteilnahme, WB !

Die selbstgstrickten Dialogboxen sehen auch manchmal völlig anders aus als in ACAD. Das liegt wohl auch daran, weil in der Benutzeroberfläche ein anderer Font verwendet wird. Ob man den irgendwie ändern kann, glaube ich allerdings nicht.
Im MerviSoft-Forum herrscht so wenig Frequenz, dass ich bezweifle, dort weiterzukommen.

L.G. Arcuso

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

T.Moses
Mitglied



Sehen Sie sich das Profil von T.Moses an!   Senden Sie eine Private Message an T.Moses  Schreiben Sie einen Gästebucheintrag für T.Moses

Beiträge: 82
Registriert: 16.03.2005

Win10, Core i9-9900k @5.0 GHz, 32 GB Ram, NVidia GT1030

erstellt am: 20. Dez. 2011 17:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo, Arcuso,

da haben Sie einen Bug gefunden - Danke !
Werde dies schnellstens korrigieren (und natürlich einen
adäquaten Test in das Bricscad'sche Testsystem einbringen)

Vielen Dank & Schöne Grüsse
Torsten Moses

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 20. Dez. 2011 17:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Herzlich Willkommen Torsten auf CAD.de - Jetzt kann ja nichts mehr schief gehen *T*O*P*   

  Sebastian

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 20. Dez. 2011 22:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von T.Moses:

Vielen Dank & Schöne Grüsse
Torsten Moses


Willkommen auf cad.de  Wo es zum Lispforum geht, ist bekannt?   

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

T.Moses
Mitglied



Sehen Sie sich das Profil von T.Moses an!   Senden Sie eine Private Message an T.Moses  Schreiben Sie einen Gästebucheintrag für T.Moses

Beiträge: 82
Registriert: 16.03.2005

Win10, Core i9-9900k @5.0 GHz, 32 GB Ram, NVidia GT1030

erstellt am: 23. Dez. 2011 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Die Fehler mit (member) und (vl-position) sind korrigiert - betraf nicht nur VLA-Objekte, sondern auch Variant und SafeArray Objekte ...

Ich denke, die Korrektur wird in einem der nächsten Bricscad-Updates enthalten sein.

"Wo es zum Lispforum geht, ist bekannt?" Das Lisp-Forum hier auf CAD.de ? Ich schaue mal ... sollte ja zu finden sein ... 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 23. Dez. 2011 23:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo Torsten,

bitte vergesse vl-sort nicht, das bringt bei mehrspaltigen Sortierungen Ergebnisse die nicht so richtig sortiert sind.

Es freut mich besondern, dass man inzwischen Deine hervoragende Arbeit erkannt hat und schätzt und Dir einen Wegweiser zum CAD.Forum zeigt.

Viele Grüße

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 01. Jan. 2012 22:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo,

ich habe geshen, dass der Fehler in der Sortierfunktion "vl-sort" behoben ist.

Danke Torsten und alles Gute zum neuen Jahr.

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Wolfgang Kirsch
Mitglied
Büroberater


Sehen Sie sich das Profil von Wolfgang Kirsch an!   Senden Sie eine Private Message an Wolfgang Kirsch  Schreiben Sie einen Gästebucheintrag für Wolfgang Kirsch

Beiträge: 41
Registriert: 29.04.2002

erstellt am: 20. Jan. 2013 14:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo zusammen,

ich sitze gerade auch an redraw bzw. vla-highlight  

Was ich nicht verstehe:
- Wenn ich an der Befehlszeile der Reihe nach folgende Befehle eingebe:

Code:
(setq obj (entsel))
, danach
Code:
(setq obj2 (car obj))
, und schließlich
Code:
(redraw obj2 3)

Kann ich erwartungsgemäß ein Objekt auswählen, in der Variablen "obj" speichern und anschließend ausleuchten.

Dieselben Zeilen zusammenhängend in ein Lisp eingebaut ermöglichen zwar die Objektauswahl, aber das Ausleuchten funktioniert nicht:

Code:
(setq obj (entsel))
(setq obj2 (car obj))
(redraw obj2 3)

Das gleiche Problem auch mit vla-highlight:

Code:
(setq obj (entsel))
(setq obj2 (vlax-ename->vla-object (car obj)))
(vla-highlight obj2 3)

Der Reihe nach, einzeln an der Kommandozeile, funzt wunderbar.
So in ein Lisp eingebaut, Ausleuchten geht nicht.

Ist das der von Arcuso beschriebene Fehler, oder steh ich da auf dem Schlauch?

Bisher dachte ich, wenn es an der Kommandozeile funktioniert, dann geht es auch so im Lisp

mfg
Wolfgang Kirsch


##########
Und es funktioniert doch!

Es kann so einfach sein ...

Zwei Zeilen weiter steht ganz harmlos:

Code:
command "._area" "_o" obj)

Das hebt die Ausleuchtung des Objektes anscheinend wieder auf, bei Autocad macht das nichts weiter.
Für den Anwender ist es in diesem Fall egal, wann genau die Ausleuchtung erfolgt. Ich habe deshalb den Aufruf einfach hinter das "command" geschrieben und alles ist fein .

mfg
Wolfgang Kirsch

[Diese Nachricht wurde von Wolfgang Kirsch am 21. Jan. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 24. Jan. 2013 21:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Arcuso 10 Unities + Antwort hilfreich

Hallo,

(redraw obj2 3)
funktioniert bei mir in ACAD und Bricscad nicht immer so wie ich es wünsche.

wenn ich:
(redraw obj2 3)
(princ)

dahinter eingebe, funktioniert es.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz