Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Befehl _area in AutoCAD 2010

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 Autodesk Produkte
Autor Thema:  Befehl _area in AutoCAD 2010 (1737 mal gelesen)
romi1
Mitglied
Bautechniker


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

Beiträge: 638
Registriert: 09.02.2006

Xeon E3-1245V2
16GB RAM
Windows 10 Professional 64 bit
AutoCAD 2014

erstellt am: 14. Jan. 2011 05:54    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


test_1_dwg.txt

 
Hallo!

Ich verwende schon länger ein Lisp zum Auswerden von Querprofildaten. Im Lisp habe ich als zentrale Abfrage der Befehl "_area" mit der Option "o" (für Objekt) für die Extraktion von Länge und Fläche von div. Polylinien eingebaut. In den AutoCAD-Versionen 2008 und 2009 funktioniert das Lisp einwandfrei.
Ein Problem gibt es aber mit AutoCAD 2010. Der Grund ist, das AutoCAD 2010 beim Befehl "_area" mit Option "o" scheinbar manche Polylinien nicht auswerten kann, obwohl es bei AutoCAD 2009 funktioniert. Ich weiß aber nicht, warum es bei AC 2010 nicht funktioniert. Es scheint je ganz normale Polylinien zu betreffen. Man bekommt die Fehlermeldung "Konnte Fläche nicht berechnen." Damit kommt natürlich mein Lisp zum Absturz. Als Beispiel im Anhang ein File mit 2 Polylinien: mit AutoCAD 2009 funktioniert "_area" mit Option "o", mit AutoCAD 2010 nicht.
Habt Ihr eine Ahnung, was da die Ursache ist? Wie könnte ich das Problem umgehen?

Gruß,
Roman

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Jan. 2011 07: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 romi1 10 Unities + Antwort hilfreich

hallo roman,
dies scheint ein bug im acad 2010 zu sein.

versuch mal folgendes:

(setq en (entget (car (entsel))))
(setq obj (vlax-ename->vla-object en))
(setq ar (vla-get-area obj))

jetzt sollte in ar deine gesuchte flaeche stehen

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 14. Jan. 2011 07:47    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 romi1 10 Unities + Antwort hilfreich

Hallo Roman,
bei mir funzt es auch mit der "o" unter ACAD2010.
Aber probier doch mal folgendes:

(command "_.area" "_object" (entsel))

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Stammtisch in Wolfsburg im Januar 2010

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

CADdog
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 2237
Registriert: 30.04.2004

erstellt am: 14. Jan. 2011 08:04    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 romi1 10 Unities + Antwort hilfreich

was mir aufgefallen Ist:
1. deine Zeichnung enthält nicht nur zwei Polylinien, sondern auch Linien und Bögen
2. die Zeichnung enthält Proxy-Elemente
3. die Prüfung der Zeichnung ergibt Fehler
4. die Polylinien sind nicht geschlossen-> area liefert kein Ergebnis
5. beim Schließen der PL schneidet sich eine PL selbst->keine Fläche mit area, die andere wird mit einen Bogen geschlossen-> kein Schneiden->Fläche wird ermittelt

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

Gruß Thomas
CADdog, the dog formerly known as TR

AutoCAD spricht mit einem, aber viele hören nicht zu.

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Jan. 2011 08: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 Nur für romi1 10 Unities + Antwort hilfreich

hallo thomas,
autocad kann sehr wohl sich selbst schneidende polylinien berechnen.
gib mal in der konsole den befehl "liste" ein. du wirst sehen, dass da ein wert fuer flaeche steht. wenn du jetzt noch die sysvar "area" dir anschaust, wirst du sehen, dass der eben berechnete wert angezeigt wird.

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

CADdog
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 2237
Registriert: 30.04.2004

Intel Xeon 3,6 GHz
32 GB RAM
NVIDIA Quadro P2000
Windows 10 Enterprise
AutoCADmap 3D 2023
WS-Landcad 2023
QGIS 3.10

erstellt am: 14. Jan. 2011 08:26    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 romi1 10 Unities + Antwort hilfreich

  
Zitat:
Original erstellt von neurosis:
autocad kann sehr wohl sich selbst schneidende polylinien berechnen.

zweifellos ist das so
aber der Befehl AREA kann das wohl in acad 2010 nicht oder?

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

Gruß Thomas
CADdog, the dog formerly known as TR

AutoCAD spricht mit einem, aber viele hören nicht zu.

[Diese Nachricht wurde von CADdog am 14. Jan. 2011 editiert.]

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

romi1
Mitglied
Bautechniker


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

Beiträge: 638
Registriert: 09.02.2006

Xeon E3-1245V2
16GB RAM
Windows 10 Professional 64 bit
AutoCAD 2014

erstellt am: 14. Jan. 2011 08:33    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

@caddog:

Zu Deinen Anmerkungen:

1.) Zeichnung ist nicht von mir erstellt, sondern von einem Kunden (ich hab für die Testdatei jede Menge rausgelöscht); außerdem habe ich keine Ahnung, mit welchen Aufsätzen die arbeiten bzw. ist es mir auch egal. Auch ist es jetzt egal, ob die Zeichnung sonst noch was enthält außer Polylinien
2.) proxy-Elemente: egal, in AC 2009 stört das scheinbar nicht und in AC 2008 auch nicht

3.) Prüfung ergibt Fehler: egal, in AC 2009 stört das scheinbar nicht und in AC 2008 auch nicht

4.) auch bei nicht geschlossenen Polylinen liefert _area ein Ergebnis; insbesondere ist ja auch die Länge von Bedeutung und wird weiter verwendet

5.) egal, siehe 4.)

[Diese Nachricht wurde von romi1 am 14. Jan. 2011 editiert.]

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Jan. 2011 08:39    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 romi1 10 Unities + Antwort hilfreich

@thomas

das der befehl "area" fehlerhaft implementiert ist, hab ich doch schon in meinem ersten post geschrieben.

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

romi1
Mitglied
Bautechniker


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

Beiträge: 638
Registriert: 09.02.2006

Xeon E3-1245V2
16GB RAM
Windows 10 Professional 64 bit
AutoCAD 2014

erstellt am: 14. Jan. 2011 08:48    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

@ neurosis:

Danke für Deinen Tipp - ich will es in dieser Weise versuchen!

Leider kenn ich mich bei den vl-Befehlen noch nicht aus:
Ich hab mal folgendes Code-Schnipsel (auf Basis deines Vorschlages) probiert:

Code:
(vla-get-area (vlax-ename->vla-object (entget (car (entsel)))))

-> nach Objektwahl folgende Fehlermeldung: Fehler: no function definition: VLAX-ENAME->VLA-OBJECT

Warum? Was mache ich da falsch?

Gruß,
Roman

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Jan. 2011 08:51    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 romi1 10 Unities + Antwort hilfreich

bevor du das ausführst, musst du noch
(vl-load-com)
eingeben

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

romi1
Mitglied
Bautechniker


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

Beiträge: 638
Registriert: 09.02.2006

Xeon E3-1245V2
16GB RAM
Windows 10 Professional 64 bit
AutoCAD 2014

erstellt am: 14. Jan. 2011 08:52    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

@ joern bosse:

Dein Vorschlag funktioniert bei mir unter AC2010 nicht (bei den betreffenden Polylines)  - ist wieder das gleiche Problem mit dem Befehl _area wie oben beschrieben

Gruß,
Roman

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 14. Jan. 2011 08:58    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 romi1 10 Unities + Antwort hilfreich

Hallo Roman,
hast Du denn Vorschlag von Marco schon getestet??? Bei mir funzt es damit mußte nur einen kleinen Tipfehler beseitigen (ein ENTGET zuviel)

Code:

(defun c:test( / )
  (vl-load-com)
  (setq en (car (entsel)))
  (setq obj (vlax-ename->vla-object en))
  (setq ar (vla-get-area obj)))

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Stammtisch in Wolfsburg im Januar 2010

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

romi1
Mitglied
Bautechniker


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

Beiträge: 638
Registriert: 09.02.2006

Xeon E3-1245V2
16GB RAM
Windows 10 Professional 64 bit
AutoCAD 2014

erstellt am: 14. Jan. 2011 08: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

@neurosis:

das (entget ...) mußte ich noch rausnehmen

in dieser Weise funktioniert es dann auch unter AC 2010 mit den hartnäckigen Polylines:

Code:
(vla-get-area (vlax-ename->vla-object (car (entsel))))

Ich muß das ganze nur noch im mein Lisp einbauen.

Vielen Dank!

Gruß,
Roman

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 14. Jan. 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 Nur für romi1 10 Unities + Antwort hilfreich

@jörn

da hatte ich wohl noch keinen/nicht genuegend kaffee intus ...
(ich werde dann mal meinen heutigen bisher geschriebenen code ueberpruefen muessen) 

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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