Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  LISP zur Flächenabfrage

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:  LISP zur Flächenabfrage (2525 mal gelesen)
wwplus
Mitglied
Architekt


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

Beiträge: 172
Registriert: 22.09.2003

Windows 7(x64)
Windows XP
Autocad ADT 2004 bis 2011
Autocad LT 2004 bis 20113D Studio Viz 2008

erstellt am: 20. Aug. 2009 14:34    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,

für einiger zeit hat wurde mir hier im forum ein lisp geschrieben,  dass mir sowohl die fläche als auch den umfang eines polygons jeweils in ein textfeld schreibt und dabei gleichzeitig verknüpft, so das eine veränderung des polygons automatisch im text die zahlen ändert.

nun komme ich heute aus dem urlaub zurück, und das lisp funktioniert nichtz mehr. hat jemand eine idee

(defun c:fl_att (/ pl att1 att2 fl)
;;;
(defun :field-makeObjectRefText (#object #property /)
  (if (vlax-property-available-p #object #property)
  (strcat "%<\\AcObjProp Object(%<\\_ObjId "
  (itoa (vla-get-ObjectID #object))
  ">%)."
  (vl-princ-to-string #property)
  " \\f \"%lu2%pr2\">%"
  )
  (strcat "##"
  (vl-princ-to-string #object)
  "."
  (vl-princ-to-string #property)
  "##"
  )
  )
)
;;;
(setq pl  (car (entsel "\nPolygon wählen: "))
      att1 (car (nentsel "\nZielattribut wählen (Fläche): "))
      att2 (car (nentsel "\nZielattribut wählen (Länge): "))
)
(entmod
  (subst
  (cons 1
(:field-makeObjectRefText (vlax-ename->vla-object pl) 'Area)
  )
  (assoc 1 (entget att1))
  (entget att1)
  )
)
(entmod
  (subst
  (cons 1
(:field-makeObjectRefText (vlax-ename->vla-object pl) 'Length)
  )
  (assoc 1 (entget att2))
  (entget att2)
  )
)
(command "_regen")
(princ)
)


PS.
mittlerweile arbeite ich mit adt 2010
gruss

andreas

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 20. Aug. 2009 15:07    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 wwplus 10 Unities + Antwort hilfreich

das lisp an sich geht. In Acad 2010 auch.
wählst du auch eine Polylinie oder wählst du einen Raum?

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

wwplus
Mitglied
Architekt


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

Beiträge: 172
Registriert: 22.09.2003

Windows 7(x64)
Windows XP
Autocad ADT 2004 bis 2011
Autocad LT 2004 bis 20113D Studio Viz 2008

erstellt am: 20. Aug. 2009 15: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

hallo cadwisel,

ich wähle eine polylinie und dann meine zwei texte in einem vorgefertigtem block
aber es geschieht nichts. weder eine fehlermeldung noch eine aktualisierung der zahlen.

gruss
andreas


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

wwplus
Mitglied
Architekt


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

Beiträge: 172
Registriert: 22.09.2003

Windows 7(x64)
Windows XP
Autocad ADT 2004 bis 2011
Autocad LT 2004 bis 20113D Studio Viz 2008

erstellt am: 21. Aug. 2009 09:28    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 cadwiesel

wenn ich das lisp ausführe und anstelle meines blockes zwei normale mtexte wähle erhalte ich als Lispausgabe folgenden text
\acobjprop
object(%<\_objld
2117137096>%).AREA
\f
"%lu2%pr2"
bzw.
\acobjprop
object(%<\_objld
2117137096>%).LENGTH
\f
"%lu2%pr2"
führe ich dann einen doppelklick auf den text aus erscheint der gewünschte wert für die fläche bzw. den umfang im textfeld

keine ahnung was da in meinem urlaub passiert ist.

gruss
andreas

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: 21. Aug. 2009 09:32    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 wwplus 10 Unities + Antwort hilfreich

auf was steht denn die Sysvar "fieldeval" ? 31 wäre gut.

------------------
  - 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

wwplus
Mitglied
Architekt


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

Beiträge: 172
Registriert: 22.09.2003

Windows 7(x64)
Windows XP
Autocad ADT 2004 bis 2011
Autocad LT 2004 bis 20113D Studio Viz 2008

erstellt am: 21. Aug. 2009 09: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

satnd auf "4"
habe sie auf "31" gesetzt, aber der erfolg bleibt leider aus, die "fehlermeldung" bleibt dieselbe

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

Bernhard GSD
Mitglied



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

Beiträge: 482
Registriert: 29.08.2002

AutoCAD 2020(Deu); Windows 10 PRO x64(Deu)

erstellt am: 24. Okt. 2018 11: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 Nur für wwplus 10 Unities + Antwort hilfreich

Zusatzfrage:

Wer kann mir helfen, diese Zeile

Code:
(:field-makeObjectRefText (vlax-ename->vla-object pl) 'Area)

so umzustricken, dass ich statt der Polylinie einen Attributwert ["M2"] statt der Flächhe einschreiben kann?

Bisheriger Code:

Code:
(DEFUN c:att_att (/ pl qatt zatt fl)
  (SETQ qatt  (CAR (ENTSEL "\nQuellattribut wählen: "))
zatt (CAR (NENTSEL "\nZielattribut wählen: ")) ;** geloescht **
  )
  (ENTMOD (SUBST (CONS 1 (:field-makeobjectreftext (VLAX-ENAME->VLA-OBJECT qatt)'textstring))
(ASSOC 1 (ENTGET att))
(ENTGET att)
  )
  )
  (ENTUPD (CDR (ASSOC 330 (ENTGET att))))
  (PRINC)
)

Die Basusfunktion

Code:
:field-makeObjectRefText

ist ja hier im Thread bekannt.

Danke im Voraus!

------------------
Gruß aus Wien
Bernhard

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

C4DP4P57
Mitglied
Technischer Zeichner


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

Beiträge: 150
Registriert: 06.05.2009

Win 10
Windows 10 Enterprise 64Bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
32 GB RAM
NVIDIA Quadro P1000
AutoCAD 2019.1.2 64Bit

erstellt am: 25. Okt. 2018 12: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 wwplus 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Bernhard GSD:
Zusatzfrage:

Code:
(:field-makeObjectRefText (vlax-ename->vla-object pl) 'Area)

so umzustricken, dass ich statt der Polylinie einen Attributwert ["M2"] statt der Flächhe einschreiben kann?


Sorry, aber den Satz verstehe ich auch nach mehrmaligem durchlesen nicht 
Ich kann nur bestätigen, das das LISP Funktioniert wie es soll (getestet in AutCAD 2019) 

Gruß
Jörg

------------------
Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.

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

cadffm
Moderator
良い精神




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: 25. Okt. 2018 12:37    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 wwplus 10 Unities + Antwort hilfreich

Übersetzungsversuch:
Anstatt auf den Flächenwert eines Quellobjektes(Polylinie) möchte er den Textwert(Attributwert) referenzieren.

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



Technischer Zeichner Sonderfahrzeugbau (m/w/d)

Bei Schmitz Feuerwehrtechnik GmbH verschmelzen Tradition und Innovation in der Sonderfahrzeugbranche. Seit 1934 fertigen wir Feuerwehrfahrzeuge, angefangen bei Kleinfahrzeugen bis hin zu Flugfeldlöschfahrzeugen. Mit unserem vielfältigen Kundenkreis, bestehend aus berufs- und freiwilligen Feuerwehren, Industrie, Flughäfen und öffentlichen Verwaltungen weltweit, blicken wir in eine Zukunft, in der die Rolle der Feuerwehren und Katastrophenschützer zunehmend an Bedeutung gewinnen wird....

Anzeige ansehenTechnischer Zeichner, Bauzeichner
Bernhard GSD
Mitglied



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

Beiträge: 482
Registriert: 29.08.2002

AutoCAD 2020(Deu); Windows 10 PRO x64(Deu)

erstellt am: 29. Okt. 2018 13:09    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 wwplus 10 Unities + Antwort hilfreich

Ja, genauso habe ich es gemeint.

Manuell über ATTEDIT geht es ja auch.
Ich habe hier aber noch einen eigenen Thread in Lisp: http://ww3.cad.de/foren/ubb/Forum145/HTML/004632.shtml
Sorry für Doppelpost, aber in Lisp sollte das Thema besser passen.

------------------
Gruß aus Wien
Bernhard

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