Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  BAND od. PLINE-Teil versetzen

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
Autor Thema:   BAND od. PLINE-Teil versetzen (1627 mal gelesen)
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: 293
Registriert: ..

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

erstellt am: 30. Mai. 2006 21: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


Schutzrohr.png

 
Hallo zusammen,
vielleicht habt Ihr dazu eine Idee

(Schutzrohr für Leitungen zeichnen)

gegeben ist eine POLYLINIE ohne Bogensegmente (stellt eine Leitung dar,)

- nun möchte ich 2 beliebige Kontrollpunkte auf der Polylinie picken

- es soll nun eine Art BAND (Breite frei definierbarbar) entlang der Polylinie zwischen den 2 gepickten Punkten geszeichnet werden.
Es sollen aber keine BÄNDER entstehen, sondern eine Polylinie über die Außenkante der Bänder.

Bis jetzt wurde immer die eigentliche Polylinie nach beiden Seiten versetzt, zurechtgestutzt, und die Enden miteinander verbunden.
Leider gibt es dabei oft Abstürze beim Versetzen da ich im 7-stelligen Koordinatenbereich arbeite(gößer 4500000.00,5600000.00).

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

www.the-skier.de

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: 13244
Registriert: 30.11.2003

.

erstellt am: 30. Mai. 2006 21: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 m-troeger 10 Unities + Antwort hilfreich

das haste aber schon gefunden? ... kann man evtl. anpassen.. ( beruht aber auch auf versetzen ) .. wenn die PL aber keine Bögen hat, gehts vielleicht auch direkter.

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 30. Mai. 2006 22: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 m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von m-troeger:

- nun möchte ich 2 beliebige Kontrollpunkte auf der Polylinie picken

- es soll nun eine Art BAND (Breite frei definierbarbar) entlang der Polylinie zwischen den 2 gepickten Punkten geszeichnet werden.
Es sollen aber keine BÄNDER entstehen, sondern eine Polylinie über die Außenkante der Bänder.


Habe ich geproggt. Meine Funktion erzeugt ein "Schutzrohr" entweder als Umring-Polygon oder als breite Polylinie. Es gab ein paar kleine Hakeligkeiten bei der Umsetzung aber auch die ließen sich wegproggen.
Im wesentlichen benutzt man die vlax-curve-... Funktionen zur Berechnung der Punkte auf der Achse. Für die "Box-Koordinaten" verwende ich die ActiveX Offset Method, erzeuge damit versetzte Plines, lese deren Koordinaten, verbinde die Koordinatenlisten miteinander und lösche am Ende die Dummy-Plines. Funktioniert wirklich  erstklassig.
Die Kernfunktion hierfür sieht bei mir so aus:

Code:

;;; Funktion ermittelt die "BOX" um alle Stützpunkte zwischen zwei Punkten
;;; auf einer Polylinie oder Linie.
;;; KEINE Objekt-Prüfung, das muß die rufende Funktion erledigen.
;;; Übergabe-Parameter:
;;; ->
;;; ENAME = Lisp-Elementname des Objekts oder vla-object
;;; Startpkt = Startpunkt der Berechnung
;;; Endpkt = Startpunkt der Berechnung
;;; Offset = Abstand für den Versatz
;;; <- Koordinatenliste
(defun GETCOORDS-BETWEEN-BOX (ENAME      STARTPUNKT  ENDPUNKT
                              OFFSET      /          KOORDLIST
                            )
  (setq ENAME    (CREATE:MSPOLYLINE
                    t
                    NIL ;_ Temporär Objekt erzeugen
                    (GETCOORDS-BETWEEN ENAME STARTPUNKT ENDPUNKT)
                  ) ;_ end of create:mspolyline
        KOORDLIST (READ:ERASE:PL ;_ Objekt versetzen, Koordinaten lesen und wieder löschen
                    (car (MS:CURVE-OFFSET ENAME OFFSET))
                  ) ;_ end of READ:ERASE:PL
        ;; Resultierende Listen verbinden (2. Temp-Objekt löschen)
        KOORDLIST (MS:UNION KOORDLIST
                            (reverse (READ:ERASE:PL ;_ Objekt versetzen, Koordinaten lesen und wieder löschen
                                      (car (MS:CURVE-OFFSET ENAME (* OFFSET -1)))
                                    ) ;_ end of READ:ERASE:PL
                            ) ;_ end of reverse
                  ) ;_ end of MS:UNION
  ) ;_ end of setq
  (ERASE-DUMMY ENAME) ;_ Basis Dummy-PLine löschen
  KOORDLIST
) ;_ end of defun


...

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 30. Mai. 2006 editiert.]

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: 293
Registriert: ..

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

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

Hallo Thomas,

nein - das habe ich leider nicht gefunden, ist aber schon in die Richtun wie ich es benötige.
Das Prog Trasse.vlx liefert mir beim Laden einen Fehler
(Fehlerhafter Argumenttyp: stringp nil, bei AC2000)

Leider muss ich mit POLYLINIEN und nicht LWPL.. arbeiten, wegen des Aufsatztes GeoCAD!

Weiterhin soll mein Trassenband ja nur zwischen den beiden gewählten Punkten verlaufen, und nicht über die Gesamtlänge der PL (sh. Schutrohr.png)

Ich sehe auch als Problem, dass die beiden Punkte ja nicht unbeding in Laufrichtung der PL gepickt werden.

dennoch danke für den Link

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

www.the-skier.de

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: 293
Registriert: ..

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

erstellt am: 30. Mai. 2006 23: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

Hallo Marc,

vielen Dank,

aber: no function definition: GETCOORDS-BETWEEN
um GETCOORDS-BETWEEN auszuführen muss ich da vorher noch was laden?
(benutze ACAD2000)

ENAME = Objektname der PL (mit ssname), hab ich das so richtig verstanden?


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

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 30. Mai. 2006 editiert.]

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1591
Registriert: 11.10.2004

Window 8.1
ACAD 2005-2016
CIVIL 2010 - 2016
BricsCAD V13-V15
Intel(R) Core(TM)i7-4700HQ CPU @ 2.40GHz 2.40 GHz
16.0GB RAM
NVIDIA GeForce GTX 850M

erstellt am: 31. Mai. 2006 07:56    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 m-troeger 10 Unities + Antwort hilfreich

Hallo Mario,
 
Zitat:
Original erstellt von m-troeger:

Bis jetzt wurde immer die eigentliche Polylinie nach beiden Seiten versetzt, zurechtgestutzt, und die Enden miteinander verbunden.
Leider gibt es dabei oft Abstürze beim Versetzen da ich im 7-stelligen Koordinatenbereich arbeite(gößer 4500000.00,5600000.00).

Wenn es nur wegen des 7-stelligen Bereiches zu Abstürzen kommt, dann kannst Du doch z.B. einen Vektor zwischen '(0.0 0.0) und dem ersten Stützpunkt der Polylinie festlegen. Dann wird die zu versetzende Polylinie um den Betrag des negativen Vektors auf 0,0 geschoben, dort wird der "_.offset"-Befehl durchgeführt, dann wird die Polylinie und die neu erzeugte(n) mit dem Betrag des positiven Vektors wieder zurückgeschoben.

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

Jörn

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

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

Zitat:
Original erstellt von m-troeger:
aber: no function definition: GETCOORDS-BETWEEN
um GETCOORDS-BETWEEN auszuführen muss ich da vorher noch was laden?


lol, ja Du müßtest mein komplettes Programm haben ;-).
Ich habe den Code-TEIL nur hier gepostet um meine Vorgehensweise zu verdeutlichen. Es handelt sich in keinem Fall um ein vollständiges Pgm zur Lösung Deines Problems. Ich wollte Dir nur verdeutlichen, dass man Deine Funktions mit ein wenig KnowHow proggen kann, bzw. Dein Wunsch nicht utopisch ist. Übrigens ist die Laufrichtung der Pline bei meiner komplett-Funktion auch egal ;-).
Es tut mir leid, wenn ich Dich durch mein Posting in die irre geführt habe, ich dachte ich hätte mich exakt ausgedrückt.
Also:
Funktion zu schreiben > Kein Problem
Jemanden finden der das kostenlos macht > IMHO eher nicht

Aber frag' doch einfach mal bei www.cad-od.de an, die machen so was.
Guckst Du hier: http://www.cad-od.de/programmierung.html

BTW: Ich weiß nicht, ob die Umsetzung auf so 'ner schneealten Version wie R2000 ohne weiteres möglich ist, dass müßte man dann mal testen.

------------------
Ciao,
Marc

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: 293
Registriert: ..

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

erstellt am: 31. Mai. 2006 18: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

Hallo Marc,

na da hab ich wohl was missverstanden.

Zwecks den ActiveX muss ich mich wohl nochmal mit den Seiten von Axel beschäftigen. Für mich sind das böhmische Dörfer, aber man kann ja nicht alles können.
Deshalb bittet man ja um Hilfe.

AC2000 stinkt mir ja auch. Leider geht es nicht jeden so gut, um alle Updates mitzumachen, zumal dann noch die Updates für die Zusatzmodule dazu kommen.

Na ich versuch nun mal Glück.

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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

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

Hi Mario,
danke für Deine PM aber es sollen ja alle was von der Antwort haben:

Zitat:
Mario schrub:
Könntes du mir erklären wie, und mit welchen Mitteln man zu der Koordinate(teil)liste zwischen den beiden Punkten kommt.

Antwort:
Zuerst einmal mußt Du Dich mit den vlax-curve Funktionen beschäftigen:
Guckst Du hier: http://ww3.cad.de/foren/ubb/Forum145/HTML/000038.shtml#000008
Alles weitere hab ich dann vom System her so gelöst:

Code:

(setq ENAME      (car (entsel))
      STARTPUNKT (getpoint "\nStart:")
      ENDPUNKT  (getpoint "\nEnde:")
)
(setq ENAME            (->VLA-OBJECT ENAME) ;_ vla-Objekt
      ;; Stützpunkte des Objekts ermitteln
      POINTS
                      (GET-PL-OR-LINE-POINTS ENAME)
      ;; Distanzen für StützpunktListe
      POINTS-DISTANCES
                      (CALCULATE-DISTANCE ENAME POINTS)
      ;; Kombinieren der Distanzen mit den Koordinaten
      POINTS
                      (mapcar (function (lambda (X Y) (list X Y)))
                              POINTS-DISTANCES
                              POINTS
                      )
)
;|
-> Bis hier eine Liste der Stützpunkte und deren Distanzen vom
Anfang der PL.
Beispiel:
POINTS =
(
(0.0 (-5.49032 11.6683 0.0))
  (137.957 (80.8695 119.252 0.0))
  (339.199 (281.83 129.888 0.0))
  (473.87 (391.519 51.7565 0.0))
)
|;

;; Die gleiche Vorgehensweise für die gepickten Punkte:
(setq
  START-END-LST
  (GET-CLOSEST-4-LST
    ENAME
    (list STARTPUNKT ENDPUNKT)
  ) ;_ end of GET-CLOSEST-4-LST
  ;; Distanzen für Start-Endpunkt-Liste
  START-END-LST-DISTANCES
  (CALCULATE-DISTANCE ENAME START-END-LST)

  ;; Kombinieren der Distanzen mit den Koordinaten
  START-END-LST
  (vl-sort (mapcar (function (lambda (X Y) (list X Y)))
                    START-END-LST-DISTANCES
                    START-END-LST
            ) ;_ end of mapcar
            (function (lambda (X Y) (< (car X) (car Y))))
  )
)
;|
-> Nun eine Liste der gepickten Punkte und deren Distanzen vom
Anfang der PL.
Beispiel:

START-END-LST =
(
(77.7011 (43.1497 72.2621 0.0))
  (358.416 (297.482 118.739 0.0))
)
|;

;; Jetzt kann man die Koordinaten über die Distanzen so kombinieren,
;; das als Resultat eine Koordinatenliste Vom Pickpunkt 1 bis Pickpunkt 2
;; mit allen dazwischenliegenden Stützpunkten entsteht. Mathematik ;-)
(setq POINTS (vl-remove-if
              (function
                (lambda (X) (<= (car X) (car (nth 0 START-END-LST))))
              )
              POINTS
            )
      POINTS (vl-remove-if
              (function
                (lambda (X) (>= (car X) (car (nth 1 START-END-LST))))
              )
              POINTS
            )
      ;; Bis hier haben wir alle Punkte ermittelt, die ZWISCHEN den Pickpunkten liegen...
      ;; Voranstellen des einen Pickpunkts...
      POINTS (cons (nth 0 START-END-LST) POINTS)
      ;; Anhängen des anderen Pickpunktes
      POINTS (append POINTS (list (nth 1 START-END-LST)))
)
;|
POINTS sieht jetzt so aus:

(
(77.7011 (43.1497 72.2621 0.0))
  (137.957 (80.8695 119.252 0.0))
  (339.199 (281.83 129.888 0.0))
  (358.416 (297.482 118.739 0.0))
)
|;

;; Jetzt noch die Distanzen aus der Liste schmeissen...
(setq POINTS (mapcar (function (lambda (X) (cadr X))) POINTS))
;|
Fertsch ->
(
(43.1497 72.2621 0.0)
  (80.8695 119.252 0.0)
  (281.83 129.888 0.0)
  (297.482 118.739 0.0)
)
|;



...

------------------
Ciao,
Marc

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: 293
Registriert: ..

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

erstellt am: 05. Jun. 2006 20: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

Hallo Marc,

das ging ja schnell, vielen Dank für deine Ausführungen, damit hast du mir sehr weitergeholfen.
Werde nun nochmal meine wenigen grauen Zellen um etwas Mitarbeit bitten, und mal schaun was passiert.

Vielen Dank nochmal und ein paar U's

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

www.the-skier.de

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: 293
Registriert: ..

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

erstellt am: 05. Jun. 2006 22:57    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 Marc,
ist es OK wenn wir alles nacheinander abarbeiten, damit auch ich das verstehe?

Zitat:
Original erstellt von marc.scherer:
(setq ENAME            (->VLA-OBJECT ENAME) ;_ vla-Objekt
      ;; Stützpunkte des Objekts ermitteln
      POINTS
                       (GET-PL-OR-LINE-POINTS ENAME)
      ;; Distanzen für StützpunktListe
      POINTS-DISTANCES
                       (CALCULATE-DISTANCE ENAME POINTS)
      ;; Kombinieren der Distanzen mit den Koordinaten
      POINTS
                       (mapcar (function (lambda (X Y) (list X Y)))
                               POINTS-DISTANCES
                               POINTS
                       )
)

hier meine Lösung für GET-PL-OR-LINE-POINTS

Code:

(defun GET-PL-OR-LINE-POINTS ( ENAME / EntPlinPkt)
  (setq POINTS '())
  (setq EntPlinPkt (entnext ENAME))
  (while EntPlinPkt
    (setq POINTS (cons  (cdr (assoc 10 (entget EntPlinPkt)))POINTS))
    (setq EntPlinPkt (entnext EntPlinPkt))
  ) ;_ Ende von while
  (if POINTS (reverse POINTS) nil)
)


funtzt aber nur wenn ENAME noch kein VLA-OBJECT Name ist.
Dies macht mich aber stutzig, sonst hättest du den Ansatzt wohl nicht so aufgebaut. Verbesser mich bitte, eh ich mir ein Code(rwelsch) aneigne.

Also würde das dann bei mir erstmal so ausehen:

Code:
      ;; Stützpunkte des Objekts ermitteln
(setq POINTS (GET-PL-OR-LINE-POINTS ENAME)); ENAME=ACAD-Elementname
(setq ENAME  (->VLA-OBJECT ENAME) ;_ vla-Objekt
      ;; Distanzen für StützpunktListe
      POINTS-DISTANCES
                      (CALCULATE-DISTANCE ENAME POINTS)
      ;; Kombinieren der Distanzen mit den Koordinaten
      POINTS
                      (mapcar (function (lambda (X Y) (list X Y)))
                              POINTS-DISTANCES
                              POINTS
                      )
)

(entschudligt bitte die späten Posting's, ich kann/darf aber nur in meiner Freizeit von meinem priv. PC ins INet)

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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 06. Jun. 2006 10: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 Nur für m-troeger 10 Unities + Antwort hilfreich

Hi Mario,
ich habe mir zwei Funktionen geschrieben:
"->ename" und "->vla-object"
Die unterscheiden sich von den internen Funktionen "vlax-vla-object->ename" und "vlax-ename->vla-object" nur dadurch, dass sie idiotensicher sind. Das heißt, jage ich einen ENAME in die Funktion "->ename" kommt ein ENAME raus, jage ich ein AX-Object da rein, kommt auch ein ENAME raus. Trifft beides nicht zu, kommt nil zurück und kein AX-Fehler. Benötige ich also für irgendeine eine Subroutinen ein Standard-Lisp-Enamen kann ich das sicherstellen, indem ich einfach das jeweils anliegende Objekt durch eine der beiden Funktionen jage und sicher sein kann das richtige zurückzubekommen. Nebenbei kann man die Dinger benutzen um eine Überprüfung vorzunehmen ob überhaupt ein Objekt vorliegt:
Code:

(if (setq obj (->vla-object obj))
  (tue-was-mit-ax obj)
  (alert "\nKein Objekt!")
)


Der Variablenname "ENAME" in meine Codes sagt nichts über den Objekttyp aus (vla-object oder Lisp-Ename). Ich konvertiere die unter Umständen gerade so, wie es eine Unterfunktion benötigt, bzw. steht in den Subs gleich am Anfang ein (->ename obj) wenn die intern wieder einen bestimmten Objekttyp benötigen. Wie dem auch sei, man kann natürlich die Koordinaten einer Pline auch über AX ermitteln, dazu ist ja nicht unbedingt Standard-Lisp erforderlich. Hier mal drei Beispiele:
Code:

(defun GET-COORDINATES (LISP-OBJ)
  (setq AX-OBJ (vlax-ename->vla-object LISP-OBJ))
  ;; Undokumentiert vlax-get, gibt direkt Standard-Lisp-Werte zurück
  ;; Aus kompatibilitätsgründen besser nicht verwenden
  (vlax-get AX-OBJ 'COORDINATES)
)

(defun GET-COORDINATES2 (LISP-OBJ)
  (setq AX-OBJ (vlax-ename->vla-object LISP-OBJ))
  ;; COM-Wrapper Funktion "vla-get-..." unkompliziert in der Verwendung,
  ;; in dieser Form aber nicht immer unbedingt verwendbar um in externen Programme
  ;; Eigenschaften abzufragen (nicht jedes Programm liefert Wrapped-Functions)
  (vlax-safearray->list (vlax-variant-value (vla-get-coordinates AX-OBJ)))
)

(defun GET-COORDINATES3 (LISP-OBJ)
  (setq AX-OBJ (vlax-ename->vla-object LISP-OBJ))
  ;; Allgemeine COM-Form "vlax-get-property". Diese Form ist allgemeingültig
  ;; verwendbar, auch um Eigenschaften von externen Programmen abzufragen.
  (vlax-safearray->list
    (vlax-variant-value (vlax-get-property AX-OBJ 'COORDINATES))
  )
)



...

------------------
Ciao,
Marc

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: 293
Registriert: ..

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

erstellt am: 06. Jun. 2006 22: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

Hallo Marc,

sehr interessant, danke.
Ob ich das nun aber auch verstanden habe ist eher fraglich.
bei strategischen Fehlern bitte zwischenfunken

Code:

(defun
  GET-COORDINATES
                    (LISP-OBJ /)
  (setq AX-OBJ (vlax-ename->vla-object LISP-OBJ))
  (setq
    POINTS
    (vlax-safearray->list
      '(vlax-variant-value ;habe hier noch ein ' eingefügt
        (vlax-get-property AX-OBJ 'COORDINATES)
        )
      ) ;_ end of vlax-safearray->list
    ) ;_ end of setq
  ) ;_ end of defun


Code:

(defun
  CALCULATE-DISTANCE  (LISP-OBJ POINTLIST / AX-OBJ)
  (setq AX-OBJ (vlax-ename->vla-object LISP-OBJ))
  (setq DISTANCELIST (mapcar
    '(lambda (ARG)
      (vlax-curve-getdistatpoint AX-OBJ ARG)) POINTLIST))
  ) ;_ end of defun


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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 07. Jun. 2006 09: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 m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von m-troeger:

bei strategischen Fehlern bitte zwischenfunken


Hi Mario,
ich werde Deinen Code nicht debuggen ;-)
Aber das hier:
Code:

'(vlax-variant-value ;habe hier noch ein ' eingefügt


funzt glaube ich nicht. Da kommt mit Sicherheit ein Fehler.
An Deiner Koordinatenfunktion wirst Du auch noch ein wenig rumschrauben müssen, denn die Eigenschaft 'Coordinates gibt die Punktliste in etwas eigenwilliger Form zurück, je nach Objekttyp des Kurvenobjekts z.b. (x y z x y z x y z x y z) oder auch (x y x y x y x y). Du benötigst für vlax-curve-getDistAtPoint aber für jeden Punkt eine Liste (x y z) in Deinem Fall also eine Liste aus Punktlisten ((x y z) (x y z) (x y z) (x y z)).

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 14. Jun. 2006 editiert.]

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: 293
Registriert: ..

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

erstellt am: 13. Jun. 2006 21: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

Hallo Marc,

ich hab es nun geschafft die Listen entsprechend zu erzeugen.

Nun noch eine Frage zum Versetzen der PL.
Gibt es in LISP für das Versetzen eine vl...-Funktion wie die Methode .Offset bei VBA?
Oder funzt das nur über den Befehl _offset, dann müsste man ja noch einen Punkt berechen, wohin versetzt werden soll?

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

www.the-skier.de

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: 13244
Registriert: 30.11.2003

.

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

Zitat:
Original erstellt von m-troeger:

Nun noch eine Frage zum Versetzen der PL.
Gibt es in LISP für das Versetzen eine vl...-Funktion wie die Methode .Offset bei VBA?


du kannst in VLisp auf dieselbe ActivX-Offset-Methode zugreifen wie unter VBA.
z.b. (vla-offset (vlax-ename->vla-object(car(Entsel))) 10)

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1591
Registriert: 11.10.2004

Window 8.1
ACAD 2005-2016
CIVIL 2010 - 2016
BricsCAD V13-V15
Intel(R) Core(TM)i7-4700HQ CPU @ 2.40GHz 2.40 GHz
16.0GB RAM
NVIDIA GeForce GTX 850M

erstellt am: 14. Jun. 2006 08: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 m-troeger 10 Unities + Antwort hilfreich

Hallo Mario,
und falls Du doch den Command-Befehl _.offset nutzen willst, dann kannst Du den Seitenpunkt wie folgt berechnen:

(polar pkt1((if rechts - +)(angle pkt1 pkt2)
    (/ pi 2.0))10.0)

rechts ist dabei nil oder T, die Strecke von 10.0 ist willkürlich gesetzt.

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

Jörn

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 14. Jun. 2006 09:15    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 m-troeger 10 Unities + Antwort hilfreich

Hi,
nicht vergessen beim Verwenden der Offset Method:
Rückgabe ist ein ARRAY von Objekten, denn beim Versetzen von einem Objekt können unter umständen mehrere Objekte entstehen (nicht nur eines).

------------------
Ciao,
Marc

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: 293
Registriert: ..

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

erstellt am: 15. Jun. 2006 23:30    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


tmp2-SR.lsp.txt


SR-test.png

 
Hallo Alle zusammen,

erstmal vielen Dank für Eure hilfreichen Beiträge.

@Jörn ich hätte es etwas anders gemacht, mit mehr Code  , Danke

@Cadmium na fein, hab vlx-offset schonmal in der Hllfe gesucht, da gabs das aber nicht, wieder an der Doku gespart  

So ich habe nun mal meinen Code angehängt, und ein Bild was zeigt,
dass das Prog bei Polylinien recht gut arbeitet, aber bei LWPolylinien haut das nicht so hin wie es erwünscht ist.

Es macht hierbei auch keinen Unterschied ob ich mit vlx-offset oder den Befehl_.offset versetze.

Ich vermute das bei LWPl's in der Funktion CALCULATE-DISTANCE
die Strecken zum Stützpunkt falsch berechnet werden.

Da ich eh nur mit Polylinien arbeite ist mir das eigentlich Brust, nur wäre es für alle interessanter wenn das auch bei LWPl's funzen würde.

Vielleicht möchte nun Marc doch mal debuggen? 

Also nochmals vielen Dank an Euch,
ich kann nun erstmal Schutzrohre malen

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

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 15. Jun. 2006 editiert.]

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: 293
Registriert: ..

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

erstellt am: 15. Jun. 2006 23: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


tmp2-SR.lsp.txt


SR-test.png

 
Anbei nun auch noch die DWG

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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 16. Jun. 2006 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 Nur für m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von m-troeger:
Vielleicht möchte nun Marc doch mal debuggen?

Selbst wenn ich wollte, könnte ich nicht ;-)
Du hast Deinen Code nicht geuppt...

BTW: Laß auf gar keinen Fall locker und baue das so, das es auch mit LWPL's geht. Ich sag' Dir aus eigener Erfahrung das Du das sonst irgendwann bereust. Spätestens wenn die HWPL's von Autodesk als nicht mehr notwendig erachtet werden und in einem Release rausfliegen.

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 16. Jun. 2006 editiert.]

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: 293
Registriert: ..

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

erstellt am: 18. Jun. 2006 20: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


schutzrohr.dwg.txt

 
Hallo Marc,

du hast ja recht, dass dies auch mit LWPl's funktionieren muss.
Aber wie? Na ich hab sicher wieder einen schönen Fehler eingebaut.

Und mach mir bitte keine Angst, dass es bald keine HWPL'S mehr gibt.

Mit den Upload ist was wohl beim editieren was schief gegangen, hänge ein Bild und den Code nocheinmal an.

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

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 18. Jun. 2006 editiert.]

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 19. Jun. 2006 08: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 m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von m-troeger:
Na ich hab sicher wieder einen schönen Fehler eingebaut.

Und mach mir bitte keine Angst, dass es bald keine HWPL'S mehr gibt.


Hi Mario,
prima Feedback von Dir!
Das ist leider nicht selbstverständlich.
Dein Code läuft bei mir sowohl mit LWPlines als auch mit HWPlines...
Könnte es sein, das Du den Ofang nicht ausgeschaltet hast?

------------------
Ciao,
Marc

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: 293
Registriert: ..

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

erstellt am: 19. Jun. 2006 19: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


schutzrohr.dwg.txt

 
Hallo Marc,

daran liegts wohl nicht, hab es gerade getestet.

Bei LWPL's erzeugt das Tool fast nur Müll wenn Start-/Entpunkt nicht auf einem Stützpunkt der LWPl liegt, bei HWPl funzt es.

Kann es evtl. an AC2000 liegen?

CALCULATE-DISTANCE
gibt mir z.B. bei LWPl (sh. dwg) eine falsche Liste zurück
(0.0 68.433 68.433 149.28 252.903 438.222)
Die Strecke zum 3. Stützpunkt ist identisch mit der Strecke zum 2. Stützpunkt  

oder führt eine Systemvariable zu solchen Rechenfehlern bei

Code:
(setq DISTANCELIST (mapcar '(lambda (ARG) (vlax-curve-getdistatpoint AX-OBJ ARG)) PKTLIST))

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

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 19. Jun. 2006 editiert.]

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4032
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Jun. 2006 21:19    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 m-troeger 10 Unities + Antwort hilfreich

IMHO vlax-curve-getdistatpoint macht nicht immer das, was man erwartet ..
ich behelfe mir dann über den Umweg (vlax-curve-getdistatparam(vlax-curve-getparamatpoint ...

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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: 293
Registriert: ..

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

erstellt am: 19. Jun. 2006 22: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

Hallo Holger,

nu genau - das funzt
Vielen Dank. 

so wird aus

Code:

(setq DISTANCELIST (mapcar '(lambda (ARG) (vlax-curve-getdistatpoint AX-OBJ ARG)) PKTLIST))


Code:

(setq DISTANCELIST (mapcar '(lambda (ARG) (vlax-curve-getdistatparam AX-OBJ ( vlax-curve-getparamatpoint AX-OBJ ARG))) PKTLIST))

also:

Code:
(vlax-curve-getdistatparam AX-Objectname ( vlax-curve-getparamatpoint AX-Objectname Punkt))
;; "Punkt" im Format/als Liste (123.321 456.987 0.0)

???

@Alle
Wenn ich nun mal überleg wie viel (Frei-)Zeit das hier gekostet hat, dann hät ich ganz schön viel Schutzrohre von Hand erstellen können.
Doch es geht ja um's Prinzip, und wenn man einmal Blut geleckt hat, will man(n)'s auch wissen.
Ich für meinen Teil habe an dieser Aufgabe einiges gelernt, immer schön Schritt für Schritt.
Sicher hilft es auch Anderen in der Verarbeitung von PL's.

Es hat mich echt gefreut diese Aufgabe mit Eurer starken Hilfe zu lösen.

Ich werde die fertige LISP noch hier rein stellen.
Doch jetzt erstmal ein Bierchen. 

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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 20. Jun. 2006 09: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 m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von m-troeger:

Wenn ich nun mal überleg wie viel (Frei-)Zeit das hier gekostet hat, dann hät ich ganz schön viel Schutzrohre von Hand erstellen können.

So darfst Du das nicht sehen.
Rede Dir einfach ein, dass Du dadurch unglaublich viel schlauer geworden bist und von nun an auf dieser Basis JEDEN Code in affenartiger Geschwindigkeit hinzauberst und Deine Produktivität ins unermessliche steigt...
Schon hat sich der Aufwand gelohnt ;-).
Auf jeden Fall freut's die Community.

@Holger:
Sach mal, könnte es sein, das die vlax-curve-getdistatpoint Funktion nur unter R2000 so rumspinnt? Hier lief der Code auch in der anderen Version problemlos (Map 2005, Acad 2007).

------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 20. Jun. 2006 editiert.]

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4032
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 20. Jun. 2006 09: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 m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von marc.scherer:
 
@Holger:
Sach mal, könnte es sein, das die vlax-curve-getdistatpoint Funktion nur unter R2000 so rumspinnt? Hier lief der Code auch in der anderen Version problemlos (Map 2005, Acad 2007).

Ne.. also ich hab das Problem auch schon auf ACAD 2004 gehabt.. aber nicht bei jeder LW-PL .. :ka waran es liegt. Mit dem "Workaround" traten die Probs jedenfalls nicht mehr auf.

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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: 293
Registriert: ..

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

erstellt am: 20. Jun. 2006 20: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


pl_around.lsp.txt

 
Hallo zusammen,

es ist vollbracht.

Hier ist nun der Code. Ich habe mal Infos und Kommentare zum besseren Verständnis drin gelassen.

Vielen Dank nochmals an die Experten, und allen Anderen viel Spaß damit.


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

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 20. Jun. 2006 editiert.]

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: 1611
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, ...,
AutoCADs 200X, SWX 2kX

erstellt am: 21. Jun. 2006 08: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 m-troeger 10 Unities + Antwort hilfreich

Nettes Tool.

wie wäre es mit einfach Enter optional an der Stelle von den Start- und Endpunkt 'Geklicke' die automatisch den Start- und Endpunkt der Pline auswählt (würde wohl manchem User gefallen):

(vlax-curve-getStartPoint Objekt)
(vlax-curve-getEndPoint Objekt)

------------------
MfG Proxy

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

erstellt am: 21. Jun. 2006 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 Nur für m-troeger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Proxy:
wie wäre es mit einfach [b]Enter optional an der Stelle von den Start- und Endpunkt 'Geklicke' die automatisch den Start- und Endpunkt der Pline auswählt (würde wohl manchem User gefallen):
[/B]

Hi Proxy, das mag ja sein. Aber im Leitungsbau geht ein Schutzrohr nur in den seltensten Fällen über die gesamte Länge der Leitung.
Ich glaube wir hätten solch einen Shortcut hier nur 0 mal verwendet...
Und wir malen viele Schutzrohre ;-)

------------------
Ciao,
Marc

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: 1611
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, ...,
AutoCADs 200X, SWX 2kX

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

Zitat:
Original erstellt von marc.scherer:
Hi Proxy, das mag ja sein. Aber im Leitungsbau geht ein Schutzrohr nur in den seltensten Fällen über die gesamte Länge der Leitung.
Ich glaube wir hätten solch einen Shortcut hier nur 0 mal verwendet...
Und wir malen viele Schutzrohre ;-)



O.K. du bist ja der Rohrverleger hier. 

------------------
MfG Proxy

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: 293
Registriert: ..

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

erstellt am: 21. Jun. 2006 22:31    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


pl_around-neu.lsp.txt

 
Hallo zusammen,

habe nun doch noch ein zwei Fehler gefunden,
und ein Wunsch  wurde auch gleich noch mit eingebaut.

Nun kann man bei Start-/Endpunkt mit ENTER den Objekt-Start/-endpunkt übergeben, (oder übernehmen    )

@Proxy  PM - geht in Ordnung, Danke

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

www.the-skier.de

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2443
Registriert: 02.11.2001

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

Zitat:
Original erstellt von m-troeger:
und ein Wunsch  wurde auch gleich noch mit eingebaut.

@Mario -> Einknicker, Backup-Macher, Schattenparker, Kinokarten-Vorbesteller! ;-)

------------------
Ciao,
Marc

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)2017 CAD.de