Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Fields/Felder und deren Werte addieren

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:  Fields/Felder und deren Werte addieren (3162 mal gelesen)
-reltro-
Mitglied
student


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

Beiträge: 12
Registriert: 01.05.2010

acad 2011

erstellt am: 20. Jul. 2010 14: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

Hallo liebes Forum,

Bin grad dabei einen Raumstempel zu machen, welcher unter anderem die Fläche eines Raumes anzeigt, wobei diese durch eine Polyline (erzeugt durch Klick und "_boundary") und einem Field, als Attribut in einen Block geschrieben wird.
Soweit so gut - funktioniert einwandfrei.

Es kann jedoch vorkommen, dass der Raum nicht nur durch Umgrenzung, sondern auch durch eine Insel definiert wird. Führe ich nun den Befehl "_boundary" aus, wird die Insel beim erzeugen der Polylinie(n) klarerweise berücksichtigt.
-----------Die Frage:
Kann ich 2 oder mehrere Fields miteinander verrechnen? die Verknüpfung zu den Polylinien sollte jedoch erhalten bleiben.
Funktioniert, oder funktioniert nicht?

Bitte um Hilfe

LG
Reltro

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

Alles

erstellt am: 20. Jul. 2010 14: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 -reltro- 10 Unities + Antwort hilfreich

Funktioniert - du kannst auch in Formeln Felder einbringen - einfach mal versuchen

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

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

-reltro-
Mitglied
student


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

Beiträge: 12
Registriert: 01.05.2010

acad 2011

erstellt am: 20. Jul. 2010 14:41    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 schnelle Antwort cadffm


Hmmm... ok...
Funktioniert, nur wenn ich mir die Field-Expression anschau (erzeugt im Dialog zum erzeugen von Fields), hab ich ehrlich gesagt keine Ahnung wie ich diese aus einem Lisp heraus erzeugen soll.
Das Field für die Fläche ist kein Problem.


kannst du mir unter Umständen weiterhelfen?

1.Field:  %<\AcObjProp Object(%<\_ObjId -1445000>%).Area \f "%lu2">%
2.Field:  %<\AcObjProp Object(%<\_ObjId -1444992>%).Area \f "%lu2">%

Formula:  1.Field - 2.Field

->        %<\AcExpr (%<\_FldPtr -1353776>%-%<\_FldPtr -1353768>%) \f "%lu2">%
                                  ???                                        ???


Wäre sehr dankbar für erklärende Hilfe... 

LG
reltro

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

Alles

erstellt am: 20. Jul. 2010 14: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 -reltro- 10 Unities + Antwort hilfreich

Die Zeit solltest du dir nehmen und uns dann das Ergebnis/die Lösung mitteilen.
)

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

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 20. Jul. 2010 17: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 -reltro- 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von -reltro-:
Hmmm... ok...
Funktioniert, nur wenn ich mir die Field-Expression anschau (erzeugt im Dialog zum erzeugen von Fields), hab ich ehrlich gesagt keine Ahnung wie ich diese aus einem Lisp heraus erzeugen soll.

schon mal im Forum oder im Netz gesucht? 
hier im Forum

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."

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

-reltro-
Mitglied
student


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

Beiträge: 12
Registriert: 01.05.2010

acad 2011

erstellt am: 21. Jul. 2010 12: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

Zitat:
Original erstellt von cadffm:
Die Zeit solltest du dir nehmen und uns dann das Ergebnis/die Lösung mitteilen.
(   )


hello cadffm


würds das ergebnis gern zur verfügung stellen, nur leider kein ergebnis in sicht...
mit aktive-X hab ich leider wenig erfahrung.

würd mich über hilfe sehr freuen - bei lust und liebe

LG
reltro

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 21. Jul. 2010 14:00    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 -reltro- 10 Unities + Antwort hilfreich

Hi,
Zitat:
Original erstellt von -reltro-:

1.Field:   %<\AcObjProp Object(%<\_ObjId -1445000>%).Area \f "%lu2">%
2.Field:   %<\AcObjProp Object(%<\_ObjId -1444992>%).Area \f "%lu2">%

Formula:   1.Field - 2.Field



du hast dir die Antwort doch schon so gut wie selbst gegeben! Fantasie spielen lassen und Mut zur Lücke - mach einfach mal! Schriftfelder sind robuster als diese filigranen String-Kompositionen vermuten lassen.
Schau dir die Syntax genau an, subtrahiere den einen Schriftfeldcode vom andern, pack %<\AcExpr vorne dran und das gewünschte Format \f...>% hinten und den Rest erledigt Acad.

Gruß
CADchup

------------------
CADmaro.de

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

Alles

erstellt am: 21. Jul. 2010 14: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 -reltro- 10 Unities + Antwort hilfreich

ich möchte Ergänzen, damit die Phantasie nicht zu lange benötigt:
Du brauchstden String nicht SO zu erstellen,
statts einem "\_FldPtr 2118791888>%" worauf du nicht selbst kommst setze einfach wie gewöhnlich dein "%<\AcObjProp Object(%<\_ObjId -1445000>%).Area \f "%lu2">%" ein,
Acad selbst übersetzt es sich dann !

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

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 21. Jul. 2010 14: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 -reltro- 10 Unities + Antwort hilfreich

Ach Mensch. Damit hast du jetzt das AHA-Erlebnis für reltro kaputtgemacht. 

 

------------------
CADmaro.de

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

Alles

erstellt am: 21. Jul. 2010 14:13    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 -reltro- 10 Unities + Antwort hilfreich

so einen bekloppten Gedankengang kann man doch nicht abfordern (motz @adesk  )

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

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

-reltro-
Mitglied
student


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

Beiträge: 12
Registriert: 01.05.2010

acad 2011

erstellt am: 21. Jul. 2010 14:20    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

ooook...

genau das hab ich eigentlich schon pobiert... habs alles zammen in ein Textobjekt zusammenkopiert... nur ist dabei nur ######### rauskommen - auch nachm _regen 

anscheinend hab ich beim kopieren irgendwas vergessen...

danke danke, liebe leute...
hab mir eh gedacht, dass es nicht so schwer sein kann... 

dank
LG
reltro

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 03. Okt. 2010 13: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 -reltro- 10 Unities + Antwort hilfreich

hallo liebe Leute...

Hab jetzt weiter probiert die Felder zusammzufassen nur leider haut das nicht so hin wie gedacht...

das gemeinsame schreiben bzw. das verrechnen der einzelnen Field-codes in ein(em) Textobjekt gelingt mir leider nicht und ich bekomm jedes mal ein nicht verwendbares ergenbis...

Nun, nach vielem rumprobieren möchte ich euch bitten mal über den Code zu gucken.
Wäre sehr dankbar für Hilfe.


Einziger Eingangswert ist hier **** n-Obj **** und stellt eine Liste von Etnity's dar welche in die Fields gepackt werden sollen.

Der CODE:

Code:

(progn
  (setq FL_ent-lst
(mapcar
  '(lambda (a / )
(list (vla-Get-Area (vlax-ename->vla-object a)) a)
  )
  n-obj          ;LISTE von Entity's
)
  )
  (setq ent-lst      ;LISTE von sortieren Entity's (sortiert nach Fläche)
(mapcar
  '(lambda (a / )
(:field-makeObjectRefText(vlax-ename->vla-object a) 'area)
  )                   
  (mapcar
'(lambda (a / )
  (cadr (assoc a FL_ent-lst))
)                       
(vl-sort
  (mapcar
'car
FL_ent-lst
  )
  '>
)
  )
)
  )
  (setq  i      'nil
  field-lst  'nil
  )
  (foreach
a
ent-lst
(if i
  (progn
(setq  field-lst  (cons (strcat "-" a) field-lst))
  )
  (progn
(setq  field-lst  (cons (strcat "(" a) field-lst)
i      'T
)
  )
)
  )
;___________________erzeugen des Field-codes
  (strcat
"%<\AcExpr "
(apply
  'strcat
  (reverse field-lst)
)
") \\f \"%lu2\">%"
  )                   
)

*für eine Insel
------>  %<AcExpr (%<\AcObjProp Object(%<\_ObjId -5930616>%).AREA \f "%lu2%pr2>%-%<\AcObjProp Object(%<\_ObjId -5930624>%).AREA \f "%lu2%pr2>%) \f "%lu2">%

*für 2 bzw. mehrer Inseln
------>  %<AcExpr (%<\AcObjProp Object(%<\_ObjId -5930304>%).AREA \f "%lu2%pr2>%-%<\AcObjProp Object(%<\_ObjId -5930320>%).AREA \f "%lu2%pr2>%-%<\AcObjProp Object(%\_ObjId -5930312>%).AREA \f "%lu2%pr2>%) \f "%lu2">%

Im Textfeld sieht dann das folgender Maßen aus:
------>  AcExpr (--) \f "%lu2"

Was passiert hier?   


ANMERKUNG: code wurde mit notepad++ und Tab's als Formatierung erzeugt. In der Vorschau wird er anders erzeugt als ich ihn beim bearbeiten sehe. Keine Ahnung wie ich da eine bessere Formatierung zustande bekomme...

hoffend auf Antworten
LG
reltro


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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 03. Okt. 2010 13: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 Nur für -reltro- 10 Unities + Antwort hilfreich

Kannst du statt _boundary nicht einfach eine Schraffur erzeugen? Da sind die Inseln doch automatisch ausgespart. Außerdem sieht man gleich, welche Räume man schon bearbeitet hat.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 03. Okt. 2010 14:02    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 -reltro- 10 Unities + Antwort hilfreich

Hallo Udo,

Diese Überlegung hab ich bereits gemacht, jedoch hab ich da das Problem dass das Hatch-objekt keine Eigenschaft Umfang besitzt.
Außerdem sollten beim Umfang auch die Inseln beachtet werden. In diesem Falle jedoch nicht subtrahiert sondern addiert werden.

Eine Idee wie man das ganze doch noch mit _boundary und Polylinien machen könnt?

LG
reltro

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 03. Okt. 2010 14: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 Nur für -reltro- 10 Unities + Antwort hilfreich

Dann nimm ein REGION Objekt. Kannst du auch mit _BOUNDARY erzeugen, hat Fläche und Umfang als Eigenschaft und kann Inseln enthalten (allerdings muss du dann noch selbst mit _SUBSTRACT/DIFFERENZ die Inseln von der Außenkontur (Region) abziehen.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 03. Okt. 2010 15:49    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 -reltro- 10 Unities + Antwort hilfreich

Hallo Udo

region funktioniert in dem Sinne wunderprächtig...

doch die Anpassbarkeit der Region ist ja nicht so toll... im nachhinein lässt sich das ding in seiner Geometrie nicht mehr ändern...

genau aus diesem Grund hab ich die Polyline verwendet.

kein einfall zu oben gezeigten Code?

LG
reltro

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 03. Okt. 2010 20:43    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 -reltro- 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von reltro:
Hallo Udo

region funktioniert in dem Sinne wunderprächtig...

doch die Anpassbarkeit der Region ist ja nicht so toll... im nachhinein lässt sich das ding in seiner Geometrie nicht mehr ändern...

genau aus diesem Grund hab ich die Polyline verwendet.

kein einfall zu oben gezeigten Code?

LG
reltro


Die Sache mit den Feldern ist doch nur eine Abkürzung, die aber bei ein bißchen Komplexität einfach unhandlich und unübersichtlich wird. Man kann das alles sehr einfach nachprogrammieren. Du kannst alle nötigen Informationen wie Umfang und Fläche direkt aus den Polylinien auslesen, und Du kannst sie über Reaktoren mit beliebigen Umrechnungen an Attribute und/oder Textelemente geben.

Dabei hängen die Reaktoren an den Polylinien selbst, so dass immer nach deren Editierung die Daten in den Attributen und/oder Texten automatisch aktualisiert werden.

Das machen Attribute mit Feldern auch nicht anders, aber der Unterschied ist dann eben, dass Du den Code sehr viel weiter gehend kontrollierst. Dein Programm wird in allen AutoCAD Versionen von 2000 bis 2011 und in BricsCAD laufen, während die Felder erst seit Version??? unterstützt werden.

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 03. Okt. 2010 21:29    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 -reltro- 10 Unities + Antwort hilfreich

hallo archtools,

Diesen Weg hab ich mir auch schon überlegt... weils grundsätzlich viele viele Dinge erleichtern würde.
Die Sache die es für mich kompliziert macht sind die Reaktoren.

Hab mich in der letzen Zeit ein wenig mit den Reaktoren befasst, zur Zeit auch ein Paar in Verwendung, jedoch sind das zb. der cmd-reactor, der mouse-reactor und lisp-reactor, welche meiner Meinung einen relativ verständlichen Syntax und funktionsweise an den Tag legen.
Manche Andere sind mir jedoch völlig unverständlich bzw. hab ichs nicht geschafft sie zum laufen zu bewegen.


Du sprichst von Reaktoren an Objekte dranhängen?
Wie kann ich das verstehn?
Wird hierbei der Reaktor direkt an ein eindeutiges Objekt gehängt und nur dann ausgelöst wenn genau dieses verändert wird?
ich nehme an ja...

[EDIT]
Ist der Reaktor dabei direkt in der Zeichnung hinterlegt oder in der Objekt-definition selbst?


    :vlr-objectModified  --- sollte dabei der passende Reaktor sein?

diesen hab ich bereits versucht zu verstehn und anzuwenden, leider ohne Erfolg.


Kannst du mir unter Umständen einen Anstoß geben wie bzw. wo ich diesen mit Objekten verknüpfe? und wie ich diesen verwenden muss?

Hoffend auf Antwort
LG
reltro

[Diese Nachricht wurde von reltro am 03. Okt. 2010 editiert.]

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 03. Okt. 2010 21:40    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 -reltro- 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von reltro:
hallo archtools,

Diesen Weg hab ich mir auch schon überlegt... weils grundsätzlich viele viele Dinge erleichtern würde.
Die Sache die es für mich kompliziert macht sind die Reaktoren.

Hab mich in der letzen Zeit ein wenig mit den Reaktoren befasst, zur Zeit auch ein Paar in Verwendung, jedoch sind das zb. der cmd-reactor, der mouse-reactor und lisp-reactor, welche meiner Meinung einen relativ verständlichen Syntax und funktionsweise an den Tag legen.
Manche Andere sind mir jedoch völlig unverständlich bzw. hab ichs nicht geschafft sie zum laufen zu bewegen.


Du sprichst von Reaktoren an Objekte dranhängen?
Wie kann ich das verstehn?


Du erzeugst einen EINZIGEN ObjectReactor, der als Owner alle Deine Umgrenzungs- und Inselpolylinien kriegt. Nach jedem Erstellen einer Boundary-Polylinie wird diese zu den Ownern dieses Objektreaktors aufgenommen. Jede dieser Polylinien hat als XData eine Raumkennung (damit gruppierst Du die zu einem Raum gehördenden Polylinien) und die Info, ob die Fläche addiert oder subtrahiert werden soll (auf Wunsch kann jede Teilfläche auch noch einen Anrechenfaktor kriegen, z.B. für die Berechnung nach 2. BVO). Die ReactorFunktion dieses Objectreactors speichert lediglich bei Änderungen die Entitynamen der aufrufenden Polylinie in einer globalen Liste. Die Attribute bzw Raumstempeltexe kriegen ebenfalls XData, um sie identifizieren zu können.

Außerdem hast Du einen EINZIGEN EditorReactor, der nur bei CommandEnded bei den relevanten Befehlen (also v.a. _Stretch usw) diese globale Liste mit den veränderten Polylinien ausliest, aus deren Xdata die betroffenen Räume ableitet, die zusammenhängenden Polylinien identifiziert, deren Flächen und Umfänge ermittelt und passend zusammen rechnet, und den Wert dann in das Attribut bzw den Raumstempeltext schreibt.

Die Reaktoren sind völlig simpel. Die Reaktorfunktionen dürfen halt keine Command-Aufrufe enthalten und das aufrufende Objekt nicht selbst zu verändern. Aber das ist hier ja auch nicht nötig.

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 03. Okt. 2010 21:49    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 -reltro- 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von reltro:
hallo archtools,
     :vlr-objectModified  --- sollte dabei der passende Reaktor sein?

Nöö, warum so speziell?

Beispielsweise so:

Code:

(setq MY:OBJ-REACTOR
(VLR-Object-Reactor
  sset
  '("TESTDATA")
  '(
    (:vlr-OpenedForModify . obj-modified-reactor)
    (:vlr-copied . obj-copied-reactor)
    )
)
)

(defun obj-modified-reactor (object calling_reactor data)
  (setq MY:GLOBALMODIFIED (cons object GLOBALMODIFIED))
)

(defun obj-copied-reactor (object calling_reactor data)
  (tu-irgendwas-wenn-object-kopiert)
)



SSET ist die Liste der VLA-Objekte (Entities), die Owner des Reaktors sind, also Deine Polylinien. Daten sind irgendwas oder NIL.

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 09. Okt. 2010 17: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 -reltro- 10 Unities + Antwort hilfreich

wiedermal, hallo...

hab jetzt einige Zeit mit dem objekt-reaktor rumgespielt jedoch zu keinem ergebnis gekommen...

was solls... hab die ganze Sache jetzt anders gelöst und es haut alles hin wie es soll...     

vielen Dank für die Hilfe an alle Beteiligten - U's sind unterwegs...

lg
reltro


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

Alles

erstellt am: 09. Okt. 2010 20: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 -reltro- 10 Unities + Antwort hilfreich

Danke für deine umfangreiche (Auf)klärung für alle Forumteilnehmer 

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

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

reltro
Mitglied
student


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

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 09. Okt. 2010 21: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 -reltro- 10 Unities + Antwort hilfreich


Raumstempel.zip.txt

 
sry...

wollt ich so eigentlich nicht...


Hier die Aufklärung:

Wie bereits weiter oben besprochen ist die Sache mit den Fields nicht der optimale.
So hab ich nun die Tips befolgt und die Fläche so wie Umfang als Text an die Attribute des Blockes übergeben.

Um auf die Veränderung der Polylinie zu reagieren hab ich nun die Umgrenzungen welche durch den Boundary befehl erzeugt werden, gesammelt analysiert welche Eigenschaften diese in Bezug auf die anderen haben und anschließend diese in Form von Handels in einem dazu passenden Dictionary abgelegt.

Um die Veränderung der Flächen und dem Umfang zu aktualisieren wird der command-reactor verwendet und reagiert auf den Befehl "_regen". Die Dictionary's werden ausgelesen, analysiert und dann verrechnet...

Weil es beim Löschen der Objekte dann zu überflüssigen Dictionarys führen würde und dann beim auswerten zu Fehlern führen würd, gibs zusätzlich auch einen Reaktor der auf "_erase" reagiert feststellt ob ein solches Objekt, welches mit den Dictionary's verknüpft ist, gelöscht wurde. Ist das der Fall wird ebenfalls geschaut ob dies eine Insel ist oder eben die äußerste Umrandung. Ist es eine Insel wird diese einfach entfernt und die Änderung im Dictionary angepasst. Handelt es sich um die äußerste Umrandung wird alles im Programm (Raumstempel) erzeugte, gelöscht und das Dictionary gelöscht.

War ziemlicher Aufwand, nicht ganz optimal weil sich die Handels ändern können, wie mir gesagt wurde, nur mit Xdata kam ich leider zu keinem Ziel weil ich diese nicht hinterblicke und nix gefunden hab wie ich verknüpfungen zwischen Objekten realisieren könnte... Bei gelöschten Objekten sin die Xdata's natürlich auch weck, wo dann nur der Weg über einen Objekt-reaktor gäbe, welchen ich jedoch nicht zum laufen gebracht habe bzw. nicht auf den "richtigen" Weg letien konnte.


Ein größeres Problem war auch dass der Boundary-befehl nicht nur die Inseln beachtet, sondern auch die Inseln in den Inseln, wodurch eine prüfung nach konvexität erforderlich wurde um die Inseln zu verschachteln um beim löschen einer solchen die nächste Insel ins spiel zu bringen...


so weit so gut...
das ganze funkt, und ich find es schön so wie es funktioniert...         

wer interesse am code hat --> Anlage... (doslib wird benötigt)

Aufruf:  "RS" ---------- Raumstempel
          "RS_lst" ------ um das ganze in eine xls-datei zu schreiben


LG
reltro       

[Diese Nachricht wurde von reltro am 09. Okt. 2010 editiert.]

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