Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Polylinie auf Globale Breite setzen

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:  Polylinie auf Globale Breite setzen (843 mal gelesen)
AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17/18
C3D 16/17/18

erstellt am: 29. Mrz. 2017 23: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 zusammen,

ich bin jetzt neu in der AutoLisp-Welt und habe noch einiges vor zum Lernen und Üben.
Momentan bin ich an einem Projekt dran, wo es nur um einfache Befehle geht.

Ich habe bisher schon das Programm fertig geschrieben, was mir noch fehlt ist einfach, dass alle Polylinien ausgewählt und auf
Globale Breite = 0 gesetzt werden.

Ich hätte den Weg des "qselect's" etc... eingeschlagen nur würde ich gerne wissen, ob es nicht einen bereits bestehenden Befehl gibt oder man es evtl. Einfacher machen könnte 

Vielen Dank im Voraus für eure Unterstützung 

Beste Grüße
AutoCADify

------------------
Nichts ist unmöglich - AutoCAD

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 29. Mrz. 2017 23: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 AutoCADify 10 Unities + Antwort hilfreich

Die Objektwahl ist nach wie vor SSGET, ist gut dokumentiert und erstellt einen Auswahlsatz.

Autocad bietet für Änderungen von Polylinien den Befehl PEDIT
Die Option BReite sollte Polylinien die Breite global ändern.

Du würdest also noch keine eigene Funktion programmieren müssen.

Die Befehlsfolge erarbeitest du dir in der Befehlszeile,
für dein Lisp baust du die Eingaben in einen (command ..) ein.

Du müsstest dabei beachten: Peditaccept (Sysvar) wenn es mal nicht nur um Polylinien geht.
Und daran denken: Objekte auf gesperrten Layer werden nicht bearbeitet.
Sysvar PLINECONVERTMODE ist auch zu nennen wenn es um pedit geht.

Ansonsten: http://www.tutorial.autolisp.info/
Wenn es von Grund auf angegangen werden soll
und die Hilfe F1 hinzu, als Nachschlagewerk.

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

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

AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17/18
C3D 16/17/18

erstellt am: 29. Mrz. 2017 23: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 cadffm,

vielen Dank für deine Schnelle Antwort.
Ich bin momentan soweit, dass ich einen Befehl zusammen getaumelt habe. Nur was mir noch vorstellen könnte ist, dass er mich ohne zu fragen alle PL auswählt und auf GB = 0 stellt.
Bisher muss ich ein Objekt wählen und nur eine PL wird dann conferted.
Hast du da eine Lösung?

Besten Dank!
AutoCADify

------------------
Nichts ist unmöglich - AutoCAD

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

AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17/18
C3D 16/17/18

erstellt am: 30. Mrz. 2017 00: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

*Als Ergänzung der Befehl bisher:

(vla-put-ConstantWidth(vlax-ename->vla-object(car(entsel)))0)

------------------
Nichts ist unmöglich - AutoCAD

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

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

Ja, im Grunde meine vorherige Antwort.
An welcher Stelle hängst du den?
Auswahl: F1 SSGET
Um die Filterliste richtig erstellen zu können, muss man die DXF Struktur etwas kennen.
F1 DXF Gruppencodes
0=Objektname 8=Layer usw.

Daten eines vorhandenen Objektes abfragen: (entget(car(entsel))'("*"))

SETQ kennst du ja (vermutlich?)

Ein "alles" umfassenden Aufsatz alleine für diese Kleinigkeiten würde zu lang werden 

Fragment-Beispiel
(if (setq Auswahlsatz (ssget "_X" (list '(0 . "*Polyline")'(8 . "MeinLayer")(cons 410 (getvar 'ctab)))))
(command "PEDIT" "m" Auswahlsatz "" "Breite" ....)
)

Ungetestet, soll nur zeigen wie der Aufbau aussehen könnte.

Splitte dir die Aufgabe:
a) Passenden Auswahlsatz erstellen / ssget
Einfaches Testen in der Befehlszeile oder in der VLIDE:
(sssetfirst nil(setq AWS (ssget "_X" '((0 . " LWPOLYLINE")))))
b) Passenden Befehlsablauf von PEDIT erarbeiten
Starte PEDIT und folge dem Befehlsablauf..
Die erste Option MEHRERE wirst du nehmen wollen, dann bei
der Objektwahl kannst du eine Lispvariable angeben oder stellvertretend die Objekte zunächst mit der Hand wählen.
Erstelle die entsprechenden (command ..)Zeile.

Deine kurze Antwortzeit deutet nicht unbedingt auf intensive Beschäftigung mit den Schlagworten und Hilfe sowie Google hin 

Und ab jetzt: Bitte konkrete Angaben und Fragen,
denn die passenden Begriffe hast du nun.

Nehme dir mehr Zeit

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

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 30. Mrz. 2017 00:59    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 AutoCADify 10 Unities + Antwort hilfreich

Dein letztes Posting hatte ich nicht gelesen, daher als Ergänzung zu meiner letzten Antwort:

Oh, du bist mit VL unterwegs?
Wenn ich deine bisherigen Postings richtig deute, dann tust du dir damit nicht unbedingt einen Gefallen.

Dir fehlt dazu einfach jegliches Basiswissen, zumindest liest es sich in deinen zwei Threads so, da wird eine Beschreibung zu möglichen Lösungen nicht helfen.

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

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: 30. Mrz. 2017 08: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 AutoCADify 10 Unities + Antwort hilfreich

ein Codeschnipsel für ActivX könnte so aussehen :

(if(setq AWS(ssget "_x" (list(cons 0 "*POLYLINE"))))
  (mapcar
    '(lambda(X / Y)
      (if(and(=(type(setq Y(cadr X)))'ENAME)
      (setq Y(vlax-ename->vla-object Y))
  )
(vl-catch-all-apply'vla-put-ConstantWidth (list Y 0.0))
      )
    ) 
    (ssnamex AWS)
  )
)

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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