Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Teilung eines Grundstücks / einer Fläche

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:  Teilung eines Grundstücks / einer Fläche (5482 mal gelesen)
Califax
Mitglied
Kaufmann, Fachwirt, AutoCADler, Allroundgenie


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

Beiträge: 100
Registriert: 19.08.2004

Autodesk AutoCAD Map 3D
Windows 10

erstellt am: 19. Aug. 2004 08:46    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


Zeichnung2-Model.jpg

 
Guten Morgen an die CAD-Gemeinde da draußen!

Ich habe folgendes Problem. Ich habe ein Grundstücke, das ich wiederum in vier gleich große Grundstücke teilen soll. (siehe Anhang)
Die roten Linien sollen ungefähr die neuen Grenzen darstellen.

Kann mir jemand irgenwie dazu weiterhelfen, eventuell gibt es dafür einen Befehl oder so was?

Danke!

PS: Macht weiter so mit eurem Forum. Hat mir bis jetzt immer geholfen.

------------------
Jeder fängt mal am Anfang an!

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 19. Aug. 2004 08:50    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 Califax 10 Unities + Antwort hilfreich

befehl _point/punkt  _divide/teilen würde dir bestimmt da helfen. Einfach die entsprechende Grundstücksseite anklicken Teilungsfaktor eingeben und dann z.b. die Trennungslininen (senkrechte) einzeichnen. Imho kann jedoch AutoCAD nicht standardmässig die Fläche einteilen, da ist Kopfrechnen (mit Annährungen) angesagt.

------------------
  "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

[Diese Nachricht wurde von Proxy am 19. Aug. 2004 editiert.]

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 19. Aug. 2004 08:55    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 Califax 10 Unities + Antwort hilfreich

Guten Morgen,

@Proxy: damit sind die Grundstücke aber noch nicht gleich groß (Flächenmäßig, wenn ich das richtig verstanden habe).
@Califax: Die Fläche ist ja bekannt. nun würde ich eine Linie ungefähr in die Mitte legen und mich iterativ der Hälfte nähern. Danach das ganze mit den beiden Restflächen nochmal.

Grüße Lutz

------------------
May the force be with you!

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

Califax
Mitglied
Kaufmann, Fachwirt, AutoCADler, Allroundgenie


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

Beiträge: 100
Registriert: 19.08.2004

erstellt am: 19. Aug. 2004 09:01    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

_teilen geht nicht, da das Grundstück ja unregelmäßig geschnitten ist.

Also bleibt da wohl nur ausprobieren?!?

Ich dachte vielleicht könnte AutoCAD ja irgendwie die Flächenaufteilung selbst vornehmen.

------------------
Jeder fängt mal am Anfang an!

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 19. Aug. 2004 09:08    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 Califax 10 Unities + Antwort hilfreich

@ DIG15: das ist klar.

normalerweise müsste die gesamtfläche erst ermittelt werden mit _area _object dieser wert durch X geteilt werden und dann kommt die lustige Aufgabe die vorhandene Fläche "human" aufzuteilen. Man könnte sie ja mit _offset so machen dass dsie dann bei dem n-fachen (n<1) entsprechend stoppt was eher einer Mohnschnecke ähnlich wäre, jedoch keinerlei Bedeutung für die Aufgabenstellung hätte.

Eigentlich müsste dann der Zeichner eine Seite als Referenz bestimmen die mit einer anderen berechnet werden. Eine dritte Seite (flexibel) müsste mit einem auszurechnedem Winkel und Abstand von dem Schnittpunkt der ersten und zweiten Seite (vorgegeben durch die Ursprungsgeometrie) ermittelt werden.  So ungefähr denke ich mit das für die Grundstückseinteilung.

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 19. Aug. 2004 09: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 Califax 10 Unities + Antwort hilfreich

ähm,

was hälst du davon das wie füher zu machen? Gesamtfläche (z.B. per Polylinie ermitteln) durch 4 Teilen. Dann kennst du die Größe der EInzelfläche. Das in der Mitte sind 2 Trapeze... dann würde ich die Flächen am Rand bis zum ersten knickpunkt berechnen, und dann die Differenz ermitteln, die noch fehlt.. da kannst du dann auch die rest trapeze berechnen und schwupps, ist das Ding gelöst...

Gruß

Charlie

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 19. Aug. 2004 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 Nur für Califax 10 Unities + Antwort hilfreich

Zitat:
[...]  Das in der Mitte sind 2 Trapeze [...]

das ist ja echt mathematisch ausgedrückt und immer leicht nachweisbar. Was machst due wenn die Fläsche aus x-hunderten Polyliniensegmenten und Bogenanteilen sich zusammensetzt und die Fläschenteilung einer Logik folgen soll?

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 19. Aug. 2004 09: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 Califax 10 Unities + Antwort hilfreich

Hi,

dann würde ich auch mehr als nur ne minute drüber nachdenken, hier ging es um EIN Grundstück... (dieses jene welche).

Gruß

Charlie

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

Califax
Mitglied
Kaufmann, Fachwirt, AutoCADler, Allroundgenie


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

Beiträge: 100
Registriert: 19.08.2004

Autodesk AutoCAD Map 3D
Windows 10

erstellt am: 19. Aug. 2004 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

_Gesamtfläche (z.B. per Polylinie ermitteln) durch 4 Teilen.

Aha? (schon lange erledigt)

_Das in der Mitte sind 2 Trapeze... 

Ich wollte aber eigentlich am Rand beginnen. Und die Grenzen sollen übrigens auch noch im rechten Winkel zur Straße verlaufen.

------------------
Jeder fängt mal am Anfang an!

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

charlieBV
Ehrenmitglied V.I.P. h.c.
Bauzeichnerin



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

Beiträge: 9317
Registriert: 28.08.2003

erstellt am: 19. Aug. 2004 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 Nur für Califax 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Califax:
_

Ich wollte aber eigentlich am Rand beginnen. Und die Grenzen sollen übrigens auch noch im rechten Winkel zur Straße verlaufen.



Es gibt doch nix besseres... Ohne dir auf den Schlips treten zu wollen, nimm dir mal eine Formelsammlung und denk mal drüber nach...

Gruß

Charlie

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

Califax
Mitglied
Kaufmann, Fachwirt, AutoCADler, Allroundgenie


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

Beiträge: 100
Registriert: 19.08.2004

Autodesk AutoCAD Map 3D
Windows 10

erstellt am: 19. Aug. 2004 09:46    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

[QUOTE]Original erstellt von charlieBV:
[B] Es gibt doch nix besseres... Ohne dir auf den Schlips treten zu wollen, nimm dir mal eine Formelsammlung und denk mal drüber nach...

Hab heute zwar ein Hemd, aber keinen Schlips um.

Deine Antwort weiter oben war ziemlich kurz geraten. Hab sie mir noch mal durchgelesen und beim dritten mal verstanden. Erst eine Fläche am Rand einzeichnen und durch Berechnung den Rest der Fläche (=Trapez) ergänzen. ;-)

Jaja, es ist früh am Morgen und schon ziemlich warm hier.

------------------
Jeder fängt mal am Anfang an!

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

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


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

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 19. Aug. 2004 19: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 Nur für Califax 10 Unities + Antwort hilfreich

Hallo,

ich denke so einfach ist das nicht.
Für Flächenteilungen gibts in den Vermessungsfachbüchern mehrere Arten der Teilung (Teilung durch einen Punkt, Parallelteilung, Senkrechtteilung, ...) und die dazugehörigen Berechnungsformeln. Dabei wird man aber vorher um eine Teilung in die Grundfiguren nicht umher kommen.

------------------
Servus,
Mario 

www.the-skier.de

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

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 19. Aug. 2004 22:01    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 Califax 10 Unities + Antwort hilfreich

Also mit AutoCAD hat man doch einen ganz famosen grafischen Taschenrechner, mit dem sich auch bei komplizierten Grenzverläufen mit wenigen, iterativen Schritten eine Flächenteilung durchführen lässt.
1. genäherten/gewünschten Grenzverlauf als Linie einzeichnen, hier z. B. von einem "nächsten" Punkt "Lot" auf Straßengrenze fällen.
Fläche ermitteln (UMGRENZUNG in der Teilfäche ermitteln, dann FLÄCHE dieser Polylinie ermitteln und LÄNGE der Grenzlinie.
Nun den ersten genäherten Grenzverlauf durch VERSETZen und ggf. STUTZEN und DEHNEN verbessern.
Versatz = (Sollfläche - Istfläche) / (Länge Näherungsgrenze)
nach 2 bis 3 Iterationen hat man bei guter erster Näherung den endgültigen Grenzverlauf gefunden.

Mit freundlichen Gruß

Udo Hübner

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 19. Aug. 2004 22: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 Nur für Califax 10 Unities + Antwort hilfreich


fteiler.gif

 
Hier mal ein Biespiel, wie man mit Lisp Probleme auf eine 'saudumme' Art löst (das Programm löst zwar das Problem, berechnet aber nix, und ich habe auch keine Ahnung, wie man so etwas berechnet):

Du brauchst eine mehr oder weniger senkrechte Linie, d.h. in deinem Fall musst du die Polylinie so drehen, dass die Strasse etwa waagerecht liegt. Das Progamm laden und dann a) die Linie wählen, b) einen Punkt innerhalb des Grundstücks ganz links, einen Punkt ganz rechts. Auf der Sizze sind diese beiden Punkte markiert.

Die Grundstücksgrenze wird vom Programm nicht direkt verwertet und daher auch nicht angeklickt. Trotzdem dürfen die Punkte nicht ausserhalb liegen. Jegliche Störgeometrie entfernen, am besten die Polylinie mit WBLOCK rausschreiben, waagerecht drehen und die Linie einzeichnen.

Da das Programm saudumm ist, rödelt es eine ganze Weile herum. Aber nicht so lange, wie du brauchst, um die Lösung auszurechnen. Und da ich auch saudumm bin, ist mir als 'guess' nix besseres eingefallen als der Wert 1.  Diesen Startwert kannst du evtl. noch anpassen, wenn du in Quadratkilometern rechnest, nimm einen niedrigeren Wert, ist die Gesamtfläche vielleicht 50000 Quadratmeter, kannst du für Guess auch 100 verwenden. Letztendlich machts aber nur ein paar Sekunden Unterschied.

In der Voreinstellung teilt das Programm das Grundstück in zwei Hälften, indem es einfach die Linie verschiebt. Dafür sorgt der Parameter d = 0.5 (ggf. im Code ändern). Um in vier Teile zu teilen,
lässt du die Linie nach dem ersten Teilen stehen und zeichnest noch jeweils in die linke und rechte Hälfte eine weitere. Dann das Programm auf die linke und rechte Hälfte noch einmal loslassen.

Für eine Teilung 1:2 setzt du (setq d (/ 1 3.0)) ein (NICHT 0.33 !)usw. Es lässt sich also jede mögliche Teilung des Grundstücks erzielen, z.B. teile so, dass die Einzelgrundstücke 20%, 30%, 15% und 35% haben. Alles ist möglich, du kannst die Linie in Grenzen auch schräg legen (ein Winkel von 20° zur Strasse oder so sollte kein Problem darstellen). Dem sind aber Grenzen gesetzt, wenn Zipfel abgeschnitten werden usw. Ausprobieren! Natürlich kannst du die Skizze zwischendurch auch drehen, um Grenzen senkrecht zueinander zu erzeugen usw.

Das Programm ist nix weiter als ein mechanisch-iteratives Verfahren, das den Befehl UMGRENZUNG aufruft und die Linie solange spazieren schiebt, bis die linke Fläche d * Gesamtfläche beträgt, mit der Toleranz eps, das du sicherlich noch etwas runterstellen kannst, wenn du kein Interesse an Millionstel Quadratmillimetern hast;-)

Wenn du aus Versehen erst den rechten Punkt, dann den linken wählst, geht's in die Hose. Und die Linien müssen lang genug sein!

Ach ja: da ich dies nicht als wiederverwendbare Lisp-Funktion sehe, sondern mehr als makroförmigen Hack in Lisp, habe ich hier auf stilistische Fragen keine Rücksicht genommen (das, was ich bei anderen immer anmeckere;-))).

Gruß, Axel Strube-Zettler

Code:

(defun c:fteiler( / d l p1 p2 ar a1 a2 guess odir dir done eps getarea)
  (defun getarea(pt / )
    (command"_-boundary" pt "")
    (command"_area""_o"(entlast))
    (entdel(entlast))
    (getvar"area")
  )

  (setq l(car(entsel"Linie wählen: ")))
  (setq p1(getpoint"Linker Punkt: "))
  (setq p2(getpoint"Rechter Punkt: "))

  (setq d 0.5)
  ;(setq d(/ 1 3.0))  ; Für Drittelteilung!
  (setq eps 0.00000001)
  (setq guess 1)

  (while(not done)
    (setq a1(getarea p1))
    (setq a2(getarea p2))
    (setq ar(+ a1 a2))
    (cond
      ( (> a1(* ar d))
        (setq odir dir dir 0)
      )
      ( (< a1(* ar d))
        (setq odir dir dir 1)
      )
    )

    (if(and odir(/= odir dir))
      (setq guess(* guess 0.5))
    )

    (if(<(abs guess)eps)
      (setq done 'T)
    )

    (princ "------------------\n")
    (princ "a1    = ")(princ a1)(princ"\n")
    (princ "a2    = ")(princ a2)(princ"\n")
    (princ "ar    = ")(princ ar)(princ"\n")
    (princ "guess = ")(princ guess)(princ"\n")

    (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
)


Gruß von Edit: Hab grad nach dem Abschicken gesehen, dass Udo einen ähnlichen Ansatz wie meinen vorgeschlagen hat (da war ich noch am Tippen). Könnte man auch so machen, aber Stutzen, Dehnen usw. ist mir heute viel zu kompliziert;-)

Auf die Grundidee kommt's an, bei Udo genauso wie bei mir: Iterative Verfahren brauchen von der Sache an sich keine Ahnung haben, sie orientieren sich nur an dem, was rauskommen muss.
------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 19. Aug. 2004 editiert.]

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

Califax
Mitglied
Kaufmann, Fachwirt, AutoCADler, Allroundgenie


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

Beiträge: 100
Registriert: 19.08.2004

erstellt am: 20. Aug. 2004 08: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

Hallo mapcar!

Das ist genau das, was ich haben wollte.

Allerherzlichsten Dank! 

PS: Das war mein "erstes Mal" im CAD-Forum und gleich die Superhilfe bekommen, die ich brauchte. Auf die nächsten Probleme! 

------------------
Jeder fängt mal am Anfang an!

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 20. Aug. 2004 09:08    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 Califax 10 Unities + Antwort hilfreich

Freut mich!

Muss aber noch auf eines hinweisen: In irgendwelchen Versionen von AutoCAD gab es mal einen Bug mit der Flächenberechnung (AREA). Ich hab's jetzt nicht im Kopf, welche Version das war und unter welchen Umständen Fehler auftraten. Weiß nicht mal, ob das inzwischen behoben ist...

Auf jeden Fall also das Ergebnis sorgfältig nachprüfen. Vielleicht weiss ja jemand mehr darüber?

Gruß, Axel Strube-Zettler

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

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze

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: 20. Aug. 2004 09: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 Califax 10 Unities + Antwort hilfreich

Evtl das hier Axel (und alle anderen .. )

Area is incorrectly calculated when using lightweight polylines versus standard polylines

------------------
Bitte Systemangaben eintragen, wie & warum siehst du hier

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

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


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

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 20. Aug. 2004 16: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 Califax 10 Unities + Antwort hilfreich

Hallo,

für die dies interessiert, die genauen Berechnungsformeln gibts in:
Formelsammlung für den Vermessungsberuf
Wilhelm Bing Verlag - 34497 Korbach
ISBN 3-87077-046-5

oder mir mal mailen
------------------
Servus,
Mario  

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 24. Aug. 2004 editiert.]

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 31. Okt. 2016 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 Califax 10 Unities + Antwort hilfreich


5-fenster.PNG

 
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!

Hallo Mapcar

2004 hast du einen erstaunlichen befehl erstellt... eventuell kennst du dich heute (12 jahre später) noch besser aus?

Siehe Bild
Ich würde gerne ein Feld (dicke Linie, ist nur ein Beispielfeld, es kann auch eine ganze andere Form haben) in zum Beispiel 5 oder 6 gleichgrosse felder (wichtig Flächeninhalt muss gleich sein... (wären es 6 Felder könnte ich eig deine "fteiler.lsp" nutzen

es wäre noch schön wenn er um jedes neues Feld ein eigenes Polygon zieht.

Ist das möglich?

vielen Dank
Gruss fmfm

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: 31. Okt. 2016 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 Califax 10 Unities + Antwort hilfreich

Das kann Axel leider nicht mehr RIP


Und dein Ziel läßt sich mit dem Code hier auch nicht "mal eben" erreichen.
"Machbar" ist natürlich alles.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 31. Okt. 2016 15:35    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 Califax 10 Unities + Antwort hilfreich

das tut mir natürlich sehr leid
mein herzliches Beileid an Familie und Freunde

hmm...

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 31. Okt. 2016 16: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 Califax 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:

Ist das möglich?


Auf der Basis von Axels "fteiler-lsp" ein Vorschlag für eine "halbautomatische" Lösung.

Die Datei fteiler.lsp habe ich mal geringfügig geändert (Änderungen fett hervorgehoben):

(defun c:fteiler( / d l p1 p2 ar a1 a2 guess odir dir done eps getarea anz)
  (defun getarea(pt / )
    (command"_-boundary" pt "")
    (command"_area""_o"(entlast))
    (entdel(entlast))
    (getvar"area")
  )
  (setq anz (getint "\nAnzahl Teile: "))
  (setq l(car(entsel"Linie wählen: ")))
  (setq p1(getpoint"Linker Punkt: "))
  (setq p2(getpoint"Rechter Punkt: "))

  ;(setq d 0.5)
  (setq d(/ 1.0 anz))  ; Für "anz" Teile
  (setq eps 0.00000001)
  (setq guess 1)
   ...

Zur Anwendung, als Beispiel eine gegebene Umgrenzung soll in 7 gleichgroße Flächen aufgeteilt werden:
1. Man zeichne eine Linie oder Bogen oder sonstige geeignete "Trenngeometrie"
2. Man starte fteiler.lsp und gebe als Anzahl 7 ein, ansonsten wie gehabt.
3. Über die größere verbliebene Teilfläche zeichne man wieder eine geeignete Trenngeometrie.
4. Man starte fteiler.lsp und gebe als Anzahl 6 ein.

Beim nächsten Mal Anzahl 5, dann 4, dann 3 ...

Man wiederhole also dieses Procedere so oft, bis man das letzte Reststück mit Anzahl 2 halbiert hat.
Sicherlich etwas aufwendig, aber immer noch bequemer und schneller als per Hand (insbes bei "komplexereren" Konturen).
Das Prinzip kann man mit etwas mehr Programmieraufwand noch weiter automatiseren. Es funktioniert jedoch nur, wenn bestimmte Regularien bei den Ausgangsdaten berücksichtigt/eingehalten werden (Form und Lage der Trenngeometrie, Richtung der aktuellen X-Achse des BKS, ...).
Eine unter allen Bedingungen funktionierende Allgemeinlösung wird es auf diesem Wirkprinzip nicht geben.
Und noch: Auch die Umgrenzung kann ggf. automatisch erzeugt werden, wenn man beispielsweise am Programmende noch den Befehl Umgrenzung hinzufügt und als Pickpunkt den linken Eingabepunkt benutzt (nur mal so ins Unreine gedacht).
Für detailliertere Lösungen müßte man die konkreten Einsatzfälle genauer kennen (was kann vorkommen, was kommt mit Sicherheit nicht vor, wie sehen die zu unterteilenden Geometrien nun wirklich aus. Die allgemeine Floskel "kann auch eine ganze andere Form haben" ist hier nicht wirklich hilfreich   ).

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

[Diese Nachricht wurde von jupa am 31. Okt. 2016 editiert.]

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 31. Okt. 2016 17: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 Califax 10 Unities + Antwort hilfreich

Hallo Jürgen

1 erst mal Herzlichen Dank (es funktioniert soweit, müsste es selber mal einem Projekt probieren, hoffe das kommt demnächst)
2 der Zeitaufwand spielt in diesem Fall nicht so eine grosse Rolle, dafür ist alles Exat und genau (das zählt mehr!!)
3 es geht darum Mitarbeiter in einem Grossraumbüro gleichmässig zu unterteilen. d. h. am ende muss jeder Mitarbeiter in der Datenbank die selbe Quadratmeterzahl haben.

4 Ein Vorteil wäre natürlich die neuen Polygone würden sich selber zeichnen, so dass ich am Ende nicht wieder alles abklicken(zeichnen) bzw. trennen und verbinden müsste (aber das ist ja dann auch nur nebensache... sollte dies ein grösserer Aufwand sein, kann man natürlich auch drauf verzichten)

5 Jede mögliche Art an Umriss(Grundriss) kann vorkommen
. z. B.
a eine Tragende Säule die mitten im Raum steht die aber ausgesparrt werden muss
b ein Schacht der in der Ecke des Raumes steht
c eine abgerundete Ecke am ende eines Grossraumbüros


nochmal vielen Dank im Momment denk ich das es Funktionieren wirde !!!

Danke danke danke

Gruss
fmfm

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 31. Okt. 2016 19: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 Califax 10 Unities + Antwort hilfreich


fTeiler-pa.lsp

 
Zitat:
Original erstellt von fmfm:

es funktioniert soweit,

Das hat fteiler.lsp ja vorher auch schon. Loobeeren gehören also postum dem Axel.

4 Ein Vorteil wäre natürlich die neuen Polygone würden sich selber zeichnen,

Dazu hatte ich ja schon einen Tip gegeben, ist nun aber mit eingearbeitet. (siehe angehängte "fTeiler-pa.lsp". Der Befehl heißt weiterhin "fteiler")

5 Jede mögliche Art an Umriss(Grundriss) kann vorkommen
. z. B.
a eine Tragende Säule die mitten im Raum steht die aber ausgesparrt werden muss
b ein Schacht der in der Ecke des Raumes steht
c eine abgerundete Ecke am ende eines Grossraumbüros

Aha, jetzt kommen die Feinheiten       

Von hinten beginnend:
- Abgerundete Ecke ist kein Problem. Die Außenkontur kann beliebig geformt sein, bestehend aus Linien, Bögen, Polylinien (wahlweise Linien- und/oder Kresibogensegmente). Splines und Ellipsenbögen nur eingeschränkt (siehe unten).
Auch das Trennelement kann eine Linie, ein Bogen, eine Polylinie, ein Spline, ein Ellipsenbogen sein. Es muß sichergestellt sein, daß das Element beim iterativen Verschieben stets die Umrißkontur vollständig schneidet.
Das Verschieben des Trennelementes erfolgt übrigens stets entlang der X-Achse. Es kann also durchaus hilfreich/notwendig sein, das BKS vor dem Aufruf von fteiler.lsp in eine geeignete Lage zu drehen (Nur so als Tip).

- Schacht in der Ecke: Wenn damit eine rechteckige "Ausbuchtung" in der Außenkontur gemeint ist, ebenfalls kein Problem, da wie oben gesagt die Umrißkontur beliebig gestaltet sein kann.

- Säule: Hat mir am meisten Kopfzerbrechen gemacht. (Nicht umsonst hatte Axel geschrieben "Jegliche Störgeometrie entfernen"). Als vorläufige Lösung benutze ich nun zur Flächenermittlung nicht Umgrenzungen (haben mehrere Nachteile), sondern Schraffuren (mehrere Vorteile; beachte: HPISLANDDETECTIONMODE (Inselerkennung) muß aktiviert sein). Wenn das ständige Aufflackern der (temporär erzeugten) Schraffuren stört, bekommt man das mit ein wenig Feintuning auch noch weg.

Ein wenig Bauchschmerzen habe ich noch, wenn eine Säule sagen wir 10 cm von der Wand entfernt steht. Die Fläche hinter der Säule (also zwischen Säule und Wand) wird vom Programm natürlich auch mit berücksichtigt. Nun kenne ich mich im Bauwesen zu wenig aus um beurteilen zu können, ob das korrekt ist (ich glaube eher nicht (?)). Ähnliche Problematik vermutlich bei schrägen Wänden. Das mußt Du selbst einschätzen, ob sowas vorkommt und bei Bedarf "Vorkehrungen" treffen (z.B. den Raum hinter einer Säule mit zwei zusätzlichen Linien "abtrennen").

Wenn die Kontur (und/oder das Trennelement) Splines und/oder Ellipsenbögen beinhaltet, wird die Erstellung der "Raumumgrenzung" fehlschlagen.

Hoffe das geht nun so.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

[Diese Nachricht wurde von jupa am 01. Nov. 2016 editiert.]

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 01. Nov. 2016 10: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 Califax 10 Unities + Antwort hilfreich


aussparung.PNG

 
Hallo Jürgen

einfach der Wahnsinn!

1. vielen Dank für deine Zeit, dein Talent und die Umsetzung
2. ich nutze jetzt eigentlich beide Befehle... der erste der keine Umgrenzung macht ist für mich auch verwendbar, wenn ich einfach mal nur Optisch sehen möchte ob die einteilung so ok ist.
4. nun versteht er es auch wenn ich eine Aussparung habe (siehe Anhang) diese Umsetzung reicht vollkommen!!!
3. hab noch 2 bitten an dich:
  a) bei deinem neusten Befehl macht er eine Umgrenzung, kann man es so einstellen das er diese neu erstelle Umgrezung rot macht... also CECOLOR...

  b) ich kann leider keine Horizontale Linie rechnen lassen.. ich muss immer meine Zeichnung erst drehen... kann man diesen Befehl nicht einfach spiegeltvehrkehrt machen? Statt liniks und recht oben und unten eingeben? ich will damit sagen das ich gern 4 Befehle hätte...

Das sind alles Luxus-Probleme, sollte es ein zu grosser Aufwand sein kann man auch darauf verzichten.

Du hast mir schon mehr als genug geholfen!!!

Herzlichen Dank

Gruss
fmfm

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 01. Nov. 2016 13: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 Califax 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:

kann man es so einstellen das er diese neu erstelle Umgrezung rot macht... also CECOLOR...

Wenn Du es denn so haben willst (mit CECOLOR; Ich persönlich würde die Umgrenzungen lieber auf einen extra Layer legen, der dann die gewünschten Eigenschaften hat), ergänze den Code einfach kurz vor Schluß (bevor die Umgrenzung/en gezeichnet wird/werden) mit
(setvar CECOLOR 1)
und ganz zum Schluß wieder zurücksetzen auf den alten Wert (war vermutlich VonLayer, also (setvar CECOLOR 256) ).
Ich habe in dem quick&dirty Entwurf bewußt auf das "Umbiegen" von Systemvarariablen (für das korrekte Schraffieren kann das durchaus notwendig sein) verzichtet, weil das einen Rattenschwanz nach sich zieht.
Prinzipiell müßte man nämlich folgendes tun:
- Wenn das Programm startet, den aktuellen Wert aller Systemvariablen, die man umbiegen bzw. auf einen bestimmten Wert setzen will merken.
(setq varold_1 (getvar "Name_der_Systemvariablen_1"))
(setq varold_2 (getvar "Name_der_Systemvariablen_2")) usw.

- dann gibt man den Systemvariablen den beabsichtigten Wert:
(setvar "Name_der_Systemvariablen_1" "Neuer_Wert_1")
(setvar "Name_der_Systemvariablen_2" "Neuer_Wert_2") usw.

- dann kommt der eigentliche Programmcode
...

- und zum Schluß die Variablen wieder auf ihren unrsprünglichen Wert zurücksetzen:
(setvar "Name_der_Systemvariablen_1" varold_1)
(setvar "Name_der_Systemvariablen_2" varold_2).

So wäre es schon deutlich besser.
Aber was passiert nun, wenn das Programm aus irgeneinem Grund mittendrin abbricht? Dann werden die umgebogenen Variablen  nicht wieder auf ihren alten Wert zurückgesetzt und der Anwender wird einige Überraschungen erleben. Um das auch in den Griff zu bekommen, bedarf es eines wohldurchdachten ERROR-Handling.
Summa summarum, für ein "Nur mal so schnell hingeschriebenes" Funktionsmakro ist mir das zu viel Aufwand.
Wenn Du Dich in die Materie tiefer einlesen willst, empfehle ich übrigens die  Lektüre des "Kochbuch" von genau jemem Axel Strube-Zettler, der auch den fTeiler-Code geschrieben hat. 

b) ich kann leider keine Horizontale Linie rechnen lassen.. ich muss immer meine Zeichnung erst drehen...
Zweckmäßiger wäre, das BKS um die Z-Achse zu drehen:
Befehl BKS, Option Z-Achse, 90 (od. -90) Grad, (oder jeden beliebigen anderen Winkel, so daß die X-Achse in die Richtung zeigt, in die das Trennelement verschoben werden soll.

Wie gesagt, ein wenig manuelles Eingreifen ist bei diesem Code-Fragment schon nötig. Nur per Knopfdruck wird sich, solange der Programmierer nicht alle Randbedingungen kennt die Aufgabe ohnehin kaum bewältigen lassen.

Jürgen


------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

[Diese Nachricht wurde von jupa am 01. Nov. 2016 editiert.]

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 01. Nov. 2016 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 Nur für Califax 10 Unities + Antwort hilfreich

Hallo Jürgen

um Ehrlich zu sein, ich hab keine Ahnung wo genau das mit der Farbe hinkommt. Habe es grad so Probiert, geht leider nicht haha

;;; Quelle: http://ww3.cad.de/foren/ubb/Forum54/HTML/008146.shtml#000013

;;; modifiziert von jupa, Oct. 2016


(defun c:fteilervy( / d  p1 p2 ar a1 a2 guess odir dir done eps getarea anz)
  (defun getarea(pt / )
    (command"_-hatch" pt "")
    (command"_area""_o"(entlast))
    (entdel(entlast))
    (getvar"area")
  )
  (setq anz (getint "\nAnzahl Teile: "))
  (setq l(car(entsel"\nTrennelement wählen: ")))
  (setq p1(getpoint"\nLinker Punkt: "))
  (setq p2(getpoint"\nRechter Punkt: "))

  (setq d(/ 1.0 anz))
  (setq eps 0.00000001)
  (setq guess 1)

  (while(not done)
    (setq a1(getarea p1))
    (setq a2(getarea p2))
    (setq ar(+ a1 a2))
    (cond
      ( (> a1(* ar d))
        (setq odir dir dir 0)
      )
      ( (< a1(* ar d))
        (setq odir dir dir 1)
      )
    )

    (if(and odir(/= odir dir))
      (setq guess(* guess 0.5))
    )

    (if(<(abs guess)eps)
      (setq done 'T)
    )

;    (princ "------------------\n")
;    (princ "a1    = ")(princ a1)(princ"\n")
;    (princ "a2    = ")(princ a2)(princ"\n")
;    (princ "ar    = ")(princ ar)(princ"\n")
;    (princ "guess = ")(princ guess)(princ"\n")

    (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
  (setvar CECOLOR 1)
  (command"_-boundary" p1 "")
  (if (= anz 2)  (command"_-boundary" p2 ""))
  (entdel l)
  (princ)
  (setvar CECOLOR 256)
  )

du hast recht, ein neuer layer wäre viel besser...
könnte man davor einen Layer erstellen mit folgenden Eigenschaften:

Layername: 0_Umgrenzungen
Farbe:    140
der rest ist irrelevant...

Ja das gelesene zu verstehen ist grad ein bisschen schwer, da mir die Erfahrung fehlt bezüglich der Systemvariablen... aber ist auch nicht so Wichtig wenn ich das noch nicht 100% verstehe.

Das mit der Horizontale klappt wenn ich das BKS um 90 Grad drehe. Danke für die Info!!

Nochmals Herzlichen Dank für die ausführliche Beschreibung.


Gruss
fmfm

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: 01. Nov. 2016 14:42    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 Califax 10 Unities + Antwort hilfreich

die Systemvariable Muß bei (setvar in Anführungszeichen stehen, daher klappte der Test nicht.

Einen neuen Layer anlegen (oder vorh. aktuell stellen) geht mit dem Befehl Layer bzw. -Layer

Aber vermutlich ist so langsam der Zeitpunkt gekommen an dem du dich selbst ein wenig mit der Materie befassen musst ;-)

(command "-Layer" "machen" "123" "")

Die Befehlsfolge ergibt sich dir wenn du den Befehl -Layer einmal in die Befehlszeile eingibst.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 01. Nov. 2016 17: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 Califax 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
die Systemvariable Muß bei (setvar in Anführungszeichen stehen,


Danke für die Korrektur. Eine Liederlichkeit meinerseits ... 

@fmfm:
ich nutze jetzt eigentlich beide Befehle... der erste der keine Umgrenzung macht ist für mich auch verwendbar,
Nur ein Hinweis: Wenn sich in dem zu untersuchenden Bereich Inseln (Pfeiler o.ä.) befinden, wird auch um diese Inseln bei jedem Iterationsschritt eine Polylinie erstellt, die vom Programm nicht wieder gelöscht wird. Da hat man dann schnell mal einige hundert übereinanderliegende Polylinien in der Zeichnung (was optisch nicht auffällt, der Datei aber keineswegs gut tut) 

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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: 02. Nov. 2016 09: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 Califax 10 Unities + Antwort hilfreich

Nur damit (Nach-)Leser nicht verzweifeln: CECOLOR erwartet die Farbnummer (oder den Farbnamen) ebenfalls als Textwert, daher gehört bei CECOLOR auch die Farbangabe in ""

(setvar "CECOLOR" "33") oder (setvar "CECOLOR" "Gelb")

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 02. Nov. 2016 11:01    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 Califax 10 Unities + Antwort hilfreich

Hallo zusammen

ich bin am verzweifeln. Ich komme leider nicht weiter.
;;; Quelle: http://ww3.cad.de/foren/ubb/Forum54/HTML/008146.shtml#000013

;;; modifiziert von jupa, Oct. 2016


(defun c:fteilervy( / d  p1 p2 ar a1 a2 guess odir dir done eps getarea anz)
  (defun getarea(pt / )
    (command"_-hatch" pt "")
    (command"_area""_o"(entlast))
    (entdel(entlast))
    (getvar"area")
  )
  (setq anz (getint "\nAnzahl Teile: "))
  (setq l(car(entsel"\nTrennelement wählen: ")))
  (setq p1(getpoint"\nLinker Punkt: "))
  (setq p2(getpoint"\nRechter Punkt: "))

  (setq d(/ 1.0 anz))
  (setq eps 0.00000001)
  (setq guess 1)

  (while(not done)
    (setq a1(getarea p1))
    (setq a2(getarea p2))
    (setq ar(+ a1 a2))
    (cond
      ( (> a1(* ar d))
        (setq odir dir dir 0)
      )
      ( (< a1(* ar d))
        (setq odir dir dir 1)
      )
    )

    (if(and odir(/= odir dir))
      (setq guess(* guess 0.5))
    )

    (if(<(abs guess)eps)
      (setq done 'T)
    )

;    (princ "------------------\n")
;    (princ "a1    = ")(princ a1)(princ"\n")
;    (princ "a2    = ")(princ a2)(princ"\n")
;    (princ "ar    = ")(princ ar)(princ"\n")
;    (princ "guess = ")(princ guess)(princ"\n")

    (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
  (command "-LAYER" "_m" "0_Umgrenzungen" "" "regen")
  (command "-LAYER" "_c" "t" "0,191,255" "0_Umgrenzungen")

  (if (= anz 2)  (command"_-boundary" p2 ""))
  (entdel l)
  (princ)
  (command "_set" "0" "" "regen")
  )

das allein hingegen funktioniert:

(defun C:test01()
(command "-LAYER" "_m" "0_Umgrenzungen" "" "regen")
(command "-LAYER" "_c" "t" "0,191,255" "0_Umgrenzungen")
(command "_set" "0" "" "regen")
)

ich habe Probleme beim beenden des Befehls: deswegen füg ich folgendes hinzu = (command "_set" "0" "" "regen")

kann mir bitte jemand weiterhelfen?

vielen Dank
Gruss fmfm

[Diese Nachricht wurde von fmfm am 02. Nov. 2016 editiert.]

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 02. Nov. 2016 13:25    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 Califax 10 Unities + Antwort hilfreich

Hallo zusammen
Zitat:
Original erstellt von fmfm:

ich bin am verzweifeln.


Also das mit dem (command "_set" ...) ist Quatsch.
Um den -Layer-Befehl zu beenden, fehlt bei Dir nur ein abschließendes ENTER, ausgedrückt durch "".

Die paar letzten Zeilen könnten also so aussehen:
  ...
  (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
  (command "-LAYER" "_m" "0_Umgrenzungen" "" "regen")    ;;; wozu das regen"?
  (command "-LAYER" "_c" "t" "0,191,255" "0_Umgrenzungen" "")
;;; Das abschließende "" beendet den Befehl -layer.
;;; Und die erste Umgrenzung hast Du gleich mit gekillt, ist das gewollt? Ich füge die Zeile mal wieder mit ein:

  (command"_-boundary" p1 "")
  (if (= anz 2)  (command"_-boundary" p2 ""))
  (entdel l)
  (princ)
  (command "_set" "0" "" "regen")
  )

Habe jetzt (da kein AutoCAD in Griffnähe) nicht getestet, könnte aber klappen.

Beachte aber: Wenn Du das Programm so laufen läßt, ist nach dessen Beendigung der Layer 0_Umgrenzungen aktuell. Bevor Du dann weiterarbeitest, mußt Du also manuell wieder auf den vorherigen wechseln. Oder Du überträgst auch diese Aufgabe dem Programm  . Tip: der Name des aktuellen Layers ist in der Systemvariablen CLayer gespeichert ...

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 02. Nov. 2016 14: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 Nur für Califax 10 Unities + Antwort hilfreich

Hallo Jürgen aka Jupa

vielen Dank!!!, es funktioniert!!!, für meine nachfolger poste ich nochmal alles damit es funktionsfähig ist:

;;; Quelle: http://ww3.cad.de/foren/ubb/Forum54/HTML/008146.shtml#000013

;;; modifiziert von jupa, Oct. 2016


(defun c:fteilervy( / d  p1 p2 ar a1 a2 guess odir dir done eps getarea anz)
  (defun getarea(pt / )
    (command"_-hatch" pt "")
    (command"_area""_o"(entlast))
    (entdel(entlast))
    (getvar"area")
  )
  (setq anz (getint "\nAnzahl Teile: "))
  (setq l(car(entsel"\nTrennelement wählen: ")))
  (setq p1(getpoint"\nLinker Punkt: "))
  (setq p2(getpoint"\nRechter Punkt: "))

  (setq d(/ 1.0 anz))
  (setq eps 0.00000001)
  (setq guess 1)

  (while(not done)
    (setq a1(getarea p1))
    (setq a2(getarea p2))
    (setq ar(+ a1 a2))
    (cond
      ( (> a1(* ar d))
        (setq odir dir dir 0)
      )
      ( (< a1(* ar d))
        (setq odir dir dir 1)
      )
    )

    (if(and odir(/= odir dir))
      (setq guess(* guess 0.5))
    )

    (if(<(abs guess)eps)
      (setq done 'T)
    )

;    (princ "------------------\n")
;    (princ "a1    = ")(princ a1)(princ"\n")
;    (princ "a2    = ")(princ a2)(princ"\n")
;    (princ "ar    = ")(princ ar)(princ"\n")
;    (princ "guess = ")(princ guess)(princ"\n")

    (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
  (command "-LAYER" "_m" "0_Umgrenzungen" "")
  (command "-LAYER" "_c" "t" "0,191,255" "0_Umgrenzungen" "")

  (command"_-boundary" p1 "")
  (if (= anz 2)  (command"_-boundary" p2 ""))
  (entdel l)
  (princ)
  (command "-layer" "Set" "0" "")
  )


abschliessende Frage zu diesem Thema

    (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0))
  )
  (command "-LAYER" "_m" "0_Umgrenzungen" "")
  (command "-LAYER" "_c" "t" "0,191,255" "0_Umgrenzungen" "")
                      <<<----- warum musste ich hier eine Zeile freilassen, ohne ging es nicht!! Ich habe doch zuvor den Befehl beendet nzungen" "")
  (command"_-boundary" p1 "")
  (if (= anz 2)  (command"_-boundary" p2 ""))
  (entdel l)
  (princ)
  (command "-layer" "Set" "0" "")
  )


boundary P1 war versehentlich beim kopieren verloren gegangen (Anfänger fehler)

Herzlichen Dank für deine Ausdauer

Gruss fmfm
Bis bald

[Diese Nachricht wurde von fmfm am 02. Nov. 2016 editiert.]

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



Innenarchitekt*in (m|w|d)

PARTNER SHIP DESIGN ist das weltweit führende Architektur-, Innenarchitektur- und Designbüro, für Neu- und Umbauten von Kreuzfahrt-, Segel- und Flussschiffen mit Sitz an der Außenalster in Hamburg. Unser Leistungsspektrum umfasst die Projekt- und Konzeptplanung sowie die Innenarchitektur und Gestaltung sämtlicher Passagier- und Crewbereiche.

Für die Unterstützung unseres Teams suchen wir ...

Anzeige ansehenArchitektur
jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6050
Registriert: 16.09.2004

Windows 10 64bit, ACAD Rel. 14 - ACAD 2023

erstellt am: 02. Nov. 2016 16: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 Califax 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
warum musste ich hier eine Zeile freilassen

Nur damit diese Frage nicht so im Raum stehenbleibt:

Muß man nicht. Leerzeilen, wenn überhaupt, dienen bestenfalls der besseren Lesbarkeit des Codes für den Menschen. Der Maschine ist das völlig egal. Aus deren Sicht kann man sogar alles in eine Zeile schreiben, ohne auch nur ein einziges ENTER zu bemühen. So einen Code möchte ich aber nicht bearbeiten/pflegen müssen. War aber früher durchaus manchmal üblich, um potentielle KnowHow-Diebe abzuschrecken.
Was bei Dir warum nicht geklappt hat kann ich nicht beurteilen.,

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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