Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Start-/Endpunkt Polylinie

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:  Start-/Endpunkt Polylinie (1960 mal gelesen)
rem2k8
Mitglied
Techniker


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

Beiträge: 12
Registriert: 18.11.2008

ACAD 20xx (Dank Subscription immer die aktuelle)

erstellt am: 17. Mrz. 2011 13: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 Lisp-Profis

Bin gerade dabei, ein Makro zum zeichnen von Blechen im Querschnitt zu proggen.
Nach Aufruf des Makros zeichne Ich einen Polylinienzug - gebe eine Versetzrichtung an und versetze die Polylinie um die vorher definierte Blechstärke.
Nun möchte Ich die jeweiligen Start -und Endpunkte miteinander verbinden.
Wie bekomme Ich nun Start- und Endpunkt bei der durch versetzen gezeichneten Polylinie?
Bin hier im Moment komplett auf dem Holzweg.

- Mario -

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 17. Mrz. 2011 13: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 rem2k8 10 Unities + Antwort hilfreich

da brauchst du doch bloß den GC70 auf 1 setzen ... ??

ansonsten ( wenn du eine LWPolylinie hast ) den 1. GC10 und den letzten GC10
------------------
      - 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

thors-hammer
Mitglied
technischer Angestellter


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

Beiträge: 19
Registriert: 25.10.2006

AutoCAD 2012, Windows 7 (64bit)

erstellt am: 17. Mrz. 2011 14:10    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 rem2k8 10 Unities + Antwort hilfreich

Hallo Mario,

und wenn du dir anstatt einer Polylinie eine Multilinie mit einem Multilinienstil erstellen läst, bei dem die Enden geschlossen sind.

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

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

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

Hallo Mario,
geht folgendes?
Code:

(defun c:test ( / ENDPOINT STARTPOINT VLA_OBJ)
(setq vla_obj (vlax-ename->vla-object (car(entsel "\nPoly wählen:"))))
(setq startPoint (vlax-curve-getStartPoint vla_obj))
  (setq endPoint (vlax-curve-getEndPoint vla_obj)))

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

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

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 17. Mrz. 2011 14:17    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 rem2k8 10 Unities + Antwort hilfreich

ach so .... na da kann ich schnell was von der Platte anpassen:

(defun C:BLECH (/ PL BREITE VLA-PL PL1 PL2 OLDCMD oldosm)
 
  (if(and(setq PL (car(entsel "\n LWPolylinie wählen: ")))
        (setq BREITE (getreal "\n BLECHDICKEe : "))
        (=(cdr(assoc 0(entget PL))) "LWPOLYLINE")
    )   
    (progn
      (setq VLA-PL (vlax-ename->vla-object PL))
      (setq PL1(car(vlax-safearray->list(vlax-variant-value(vla-offset VLA-PL (/ BREITE  2.0))))))
      (setq PL2(car(vlax-safearray->list(vlax-variant-value(vla-offset VLA-PL (/ BREITE -2.0))))))     
      (vla-addvertex PL1 0 (vla-get-coordinate PL2 0))
      (vla-setbulge PL1 (1-(/(length(vlax-safearray->list(vlax-variant-value(vla-get-coordinates PL1))))2))0)
      (vla-addvertex
        PL1
        (/(length(vlax-safearray->list(vlax-variant-value(vla-get-coordinates PL1))))2)
        (vla-get-coordinate
          PL2
          (1-(/(length(vlax-safearray->list(vlax-variant-value(vla-get-coordinates PL2))))2))
        )
      )
      (vla-delete VLA-PL)
      (setq OLDCMD(getvar "cmdecho"))
      (setq OLDOSM(getvar "osmode"))
      (setvar "cmdecho" 0)
      (setvar "osmode" 0)
      (vl-catch-all-apply
        'vl-cmdf
        (list "_pedit" (vlax-vla-object->ename PL1) "_j" (vlax-vla-object->ename PL2)"" "")
      )
     
      (setvar "cmdecho" oldcmd)
      (setvar "osmode" oldosm)
    )
  )
  (princ)
)

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

rem2k8
Mitglied
Techniker


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

Beiträge: 12
Registriert: 18.11.2008

ACAD 20xx (Dank Subscription immer die aktuelle)

erstellt am: 17. Mrz. 2011 14: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

@cadmium

GC nehme Ich an = Gruppencode?
Wie sieht so eine Schleife aus, in der ich an den 1. und letzten GC 10 komme?

@thors-hammer

Das mache Ich derzeit.
Ich möchts nur einfach gerne etwas eleganter haben und in weiterer folge auch die Biegeradien draufbringen. (Zusatzapplikationen wie Athena, Syscad,... kommen leider nicht in Frage)

@jörn + cadmium
Leider Absturz mit:
; Fehler: no function definition: VLAX-ENAME->VLA-OBJECT

Bin leider noch ziemlicher Newbie, was LISP angeht und daher noch etwas wackelig auf den Beinen.

- Mario -

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 17. Mrz. 2011 14: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 rem2k8 10 Unities + Antwort hilfreich

ok .. da fehlt
(vl-load-com)
an Anfang..
also

(defun C:BLECH (/ PL BREITE VLA-PL PL1 PL2 OLDCMD oldosm)
  (vl-load-com)
  (if.........


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

rem2k8
Mitglied
Techniker


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

Beiträge: 12
Registriert: 18.11.2008

ACAD 20xx (Dank Subscription immer die aktuelle)

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

@cadmium

Funktioniert.

Der andere Weg mit den GC's würde mich trotzdem interessieren.
Wie lese ich in einer Schleife (nehme ich an) die einzelnen GC's aus und speichere 1. und letzten in entsprechende Variabeln?
In VBA wär das für mich alles kein Problem aber wie gesagt -> Lisp lerne ich gerade autodidakt.

LG, Mario

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 17. Mrz. 2011 15: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 rem2k8 10 Unities + Antwort hilfreich

zum Verständnis .. teste mal die Zeilen einzeln duch copy&paste in der Befehlszeile ...

(setq OBJ(car(entsel "\nPL wählen:")))
(setq DATA(entget OBJ))
(setq GC10LIST(vl-remove-if-not '(lambda(X) (=(car X) 10)) DATA))
(setq PKTS(mapcar 'cdr GC10LIST))
(setq START(car PKTS))
(setq ENDE(car(reverse PKTS)))

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

rem2k8
Mitglied
Techniker


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

Beiträge: 12
Registriert: 18.11.2008

ACAD 20xx (Dank Subscription immer die aktuelle)

erstellt am: 17. Mrz. 2011 15: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

Oh Mann - jetzt kommts dicke.
mapcar und lambda - ich habs befürchtet.
Trotzdem aufgrund der Schritt für Schritt-Variante super nachvollziehbar obwohl ich mich mit den ganzen vl(ax) noch nicht so auskenne.
Trotzdem Danke für die tollen Beispiele.

LG, Mario

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



Techniker (m/w/d) Konstruktion
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als Expert:in für unseren Kunden. Wir realisieren spannende Projekte für namhafte Kunden des Maschinenbaus und sorgen für sichere und nachhaltige Technologielösungen.
Anzeige ansehenKonstruktion, Visualisierung
CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 17. Mrz. 2011 15: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 rem2k8 10 Unities + Antwort hilfreich

du must ja nicht mapcar nehmen ....

(foreach GCWERT DATA
  (if(=(car GCWERT) 10))
    (setq PKTS(cons (cdr GCWERT) PKTS))
  )
)
(setq PKTS(reverse PKTS))

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

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