Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Punkte auf Linie erstellen

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:  Punkte auf Linie erstellen (901 mal gelesen)
3105orcas
Mitglied
Bauzeichnerin


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

Beiträge: 237
Registriert: 26.02.2003

erstellt am: 01. Sep. 2004 15: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

Hallo, brauche dringend Hilfe, aber leider kein Lisp-Experte!

Folgendes Problem: Ich muss auf vielen Linien jeweils Punkte in verschiedenen Abständen eintragen. Also z.B. eine gerade Linie und 3 Punkte mit unterschiedlichem Abstand.
Hoffe man kann das vielleicht mit Lisp hinkriegen, in der Form das man die Linie vielleicht anklickt, die drei Abstandswerte von den Punten angibt und dann einen Block an diesen Stellen generiert bekommt.

Vielleicht kann mir jemand helfen?
Danke Danke Danke
Anne

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: 01. Sep. 2004 15:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 3105orcas 10 Unities + Antwort hilfreich

Schon den Befehl teilen versucht ?

------------------
- Thomas -

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

3105orcas
Mitglied
Bauzeichnerin


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

Beiträge: 237
Registriert: 26.02.2003

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

Teilen ist ja logisch, für gleiche Abstände, ich möchte aber mit einem Befehl 3 verschiedene Punkte eintragen!

Anne

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: 01. Sep. 2004 15: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 Nur für 3105orcas 10 Unities + Antwort hilfreich

na, vielleicht wirst du hier fündig .. zumindest Ansätze findest du da ..

------------------
- Thomas -

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

Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 01. Sep. 2004 16:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für 3105orcas 10 Unities + Antwort hilfreich

versuch mal das:
Code:

(defun c:l_teil ()
  (setq obj (nentsel "\nLinie wählen: ")) 
  (setq pt1 (cdr (assoc 10 (entget (car obj)))))
  (setq pt2 (cdr (assoc 11 (entget (car obj)))))
  (setq p_klick (car (cdr obj)))
  (if (> (distance p_klick pt1) (distance p_klick pt2))
    (progn
      (setq p_temp pt1)
      (setq pt1 pt2)
      (setq pt2 p_temp)
      (setq p_temp NIL)
      )
    )
  (while (setq ab (getreal "\nAbstand eigeben: "))
    (setq osmode_save (getvar "osmode"))
    (setvar "osmode" 0)
    (command "_-insert" "temp" (polar pt1 (angle pt1 pt2) ab) "" "" "")
    (setvar "osmode" osmode_save)
    )
  )


  • du wählst eine linie an
    (*]dann wird geprüft auf welcher "seite" der linie du geklickt hast - von diesem eindpunkt wird dann weggemessen
  • dann so lange abstände eingeben wie du willst - es wird immer an diesem punkt ein block "temp" eingefügt - solls ein anderer block sein einfach im code austauschen

------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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

3105orcas
Mitglied
Bauzeichnerin


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

Beiträge: 237
Registriert: 26.02.2003

Autodesk Civil / Map 3D 2021

erstellt am: 02. Sep. 2004 07: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

Moin Moin Siegfried,
danke du warst meine Rettung! Genau so wie ich´s mir vorgestellt habe!

Grüße
Anne

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

Mario Scht
Mitglied



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

Beiträge: 156
Registriert: 14.11.2002

Win XP
ACAD 2007

erstellt am: 02. Sep. 2004 15: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 3105orcas 10 Unities + Antwort hilfreich

Hallo,
habe das ganze mal etwas erweitert, mit vorheriger Auswahl des zu kopierenden Blockes und der Möglichkeit einzustellen, ob man vom Anfangspunkt der Linie jeweils absolut, oder vom jeweilig letzten Punkt aus die nächste Entfernung abtragen will.

Es wäre aber schön, wenn mir jemand die globale Variable *block-name* eliminieren könnten, durch Variablenübergabe. Habe kein Handbuch und in LT gibts da keine spezielle Hilfe, ich weiß nur, dass es gehen muss und dass macht einen dann fix und fertig, wenns letztlich doch nicht klappt :-). Habe selbst schon mit (defun ???? / ) experimentiert, kriegs aber nicht hin.
Danke schonmal vorab!

Grüße Mario

; Programm zum einfügen eines Blockes entlang einer Linie
(defun wahl_block ( / enX en ent exitflag )
; Auswahlroutine für einzusetzenden Block
(setq exitflag NIL)
(while (not exitflag)
    (setq enX (entsel (strcat "\nBLOCK wählen! " "<" *name-block* ">")))
    (if (not enX)
        (setq exitflag T)
        (progn   
          (setq en (car enX))
          (setq ent (entget en))
          (if (= (cdr (assoc 0 ent)) "INSERT")
            (progn
            (princ "\nDas ist ein Block!")
            (setq *name-block* (cdr (assoc 2 ent)))
            (princ *name-block*) 
            (setq exitflag T)
            )
            (princ "\nGewähltes Element ist kein Block!")
          )
        )
    )
)
)

(defun c:lw ( / obj pt1 pt2 p_klick p_temp ab hlp entsch)
  (if (= *name-block* nil)
      (setq *name-block* "")
  )
  (setq ab NIL)
  (setq hlp 0)
  (setq entsch NIL)
(wahl_block )
  (setq entsch (getstring "\nWollen Sie die Punktfolge <a>bsolut, oder <r>elativ eingeben? <r> "))
  (princ (strcat "| " entsch " |"))
  (setq obj (nentsel "\nLinie wählen: ")) 
  (setq pt1 (cdr (assoc 10 (entget (car obj)))))
  (setq pt2 (cdr (assoc 11 (entget (car obj)))))
  (setq p_klick (car (cdr obj)))
      (if (> (distance p_klick pt1) (distance p_klick pt2))
        (progn
          (setq p_temp pt1)
          (setq pt1 pt2)
          (setq pt2 p_temp)
          (setq p_temp NIL)
        )
      )
  (if
    (OR
    (= entsch "a")
    (= entsch "A")
    )
    (progn
      (while (setq ab (getreal "\nAbstand eigeben: "))
        (setq osmode_save (getvar "osmode"))
        (setvar "osmode" 0)
        (command "_-insert" *name-block* (polar pt1 (angle pt1 pt2) ab) "" "" "")
        (setvar "osmode" osmode_save)
      )
    )
    (progn
      (while (setq ab (getreal "\nAbstand eigeben: "))
        (setq ab (+ ab hlp))
        (setq osmode_save (getvar "osmode"))
        (setvar "osmode" 0)
        (command "_-insert" *name-block* (polar pt1 (angle pt1 pt2) ab) "" "" "")
        (setq hlp ab)
        (setvar "osmode" osmode_save)
      )
    )
  )
)

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