Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  regen läuft zu langsam

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:  regen läuft zu langsam (1098 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 17. Jan. 2013 16: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

Code:

(defun c:mot2 ()
  (setq ent (car (nentsel "\nwähle dim text ")))
  (setq NP (getpoint "\nneue position "))
  (entmod (subst (cons 10 NP)
                (assoc 10 (entget ent))
                (entget ent)
                )
          )
  (command "_regen" "all" "")
  (princ)
  )

(defun c:mot ()
  (setq obj (vlax-ename->vla-object (car (nentsel "\nwähle dim text "))))
  (setq pt (vlax-3d-point (getpoint "\nneue position ")))
  (vla-put-insertionpoint obj pt)
  (command "_regen" "all" "")
  (princ)
  )

(defun c:mot3 (/ *error* gr ent)
(defun *error* (msg)
    (princ (strcat "\nError: " msg))
    (princ)
    )
  (setq ent (car (nentsel "\nwähle dim text ")))
  (while (setq gr (grread T 12 0))
    (entmod (subst (cons 10 (cadr gr))
                (assoc 10 (entget ent))
                (entget ent)
                )
          )
    (command "_regen" "")
    )
   
  (princ)
  )


hi all!

ich habe hier ein paar funktionen zusammen geschrieben, die mir einen text von DIMENSION-objekt verschieben soll. Optimal wäre, wenn ich den text während der verschiebung sehen könnte, dass soll mein 3. beispiel ermöglichen, aber läuft ebend sehr träge. hat jemand einen tip auf lager sorry bin auf einhändiges schreiben wegen gebrochener schulter gezwungen, deshalb alles klein geschrieben.

------------------
Gruss Dirk

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 17. Jan. 2013 16: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 Nur für cadplayer 10 Unities + Antwort hilfreich

Vielleicht hift dir da schon entupd.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1 die aus unerklärlichen Gründen aus dem System hier gelöscht wurden. 

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: 17. Jan. 2013 17: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 cadplayer 10 Unities + Antwort hilfreich

Beim brutalen verschieben des Mtextes eines Bemaßungsblockes helfe ich zwar nicht,
dennoch möchte ich auf die Funktion AIDIMTEXTMOVE mit Option 0 , 1 und 2 hinweisen.

Deine Kotzeilen wären optisch vergleichbar mit der Option 2 von AIDIMTEXTMOVE ,
also ohne die Bemaßungslinie zu verschieben(0) und der MText hat keine Führung(1).

Mit dem Unterschied eben das AIDIMTEXTMOVE dem Bemaßungsobjekt Bescheid gibt was Sache ist und
zudem ist es fix&fertig in der Standardinstallation enthalten, gar im Kontextmenü für
Bemaßungen intergriert.

Hilft nicht beim Programmieren, aber den einen oder anderen Mitleser hilft es vielleicht.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 17. Jan. 2013 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 Nur für cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
hi all!

ich habe hier ein paar funktionen zusammen geschrieben, die mir einen text von DIMENSION-objekt verschieben soll. Optimal wäre, wenn ich den text während der verschiebung sehen könnte, dass soll mein 3. beispiel ermöglichen, aber läuft ebend sehr träge. hat jemand einen tip auf lager  sorry bin auf einhändiges schreiben wegen gebrochener schulter gezwungen, deshalb alles klein geschrieben.



Da hast in c:mot3 ja das REGEN in der While-Schleife stehen. Kein Wunder, dass Dein Rechner da stehen bleibt ...


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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 18. Jan. 2013 07:45    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 cadplayer 10 Unities + Antwort hilfreich

hallo cadplayer,
statt "(command "_regen" "")" verwende (wie schon geschrieben) "entupd".

aber:
was passiert, wenn der anwender esc drueckt?
dein originalobjekt ist verschoben auf die letzte mouse position - das waere aber falsch.

du musst mit einer kopie deines objekts arbeiten und erst am ende das originalobjekt verschieben, die kopie wieder loeschen und (redraw).

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 18. Jan. 2013 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

hi danke erstmal fuer eure guten kommentare
cadffm
Zitat:
möchte ich auf die Funktion AIDIMTEXTMOVE mit Option 0 , 1 und 2 hinweisen

ist optimal mit wenig aufwand umsetzbar.

meldin

Zitat:
Vielleicht hift dir da schon entupd

entupd in der while schleife arbeite nicht gleich "regen" oder?

archtools

Zitat:
Da hast in c:mot3 ja das REGEN in der While-Schleife stehen. Kein Wunder, dass Dein Rechner da stehen bleibt ...

mein rechner bleibt nicht stehen er läuft nur träge, weil er immer erst regenerieren muss, bevor die textposition angezeigt wird.

neurosis

Zitat:
was passiert, wenn der anwender esc drueckt?
dein originalobjekt ist verschoben auf die letzte mouse position - das waere aber falsch.

habe ich noch nicht beruecksichtigt

Zitat:
du musst mit einer kopie deines objekts arbeiten und erst am ende das originalobjekt verschieben, die kopie wieder loeschen und (redraw).

Ich komme an der stelle nicht weiter, wie ich den masstext absetzen kann
Code:

(defun c:mot3 (/ *error*
              gr
              ent
              )
(defun *error* (msg)
    (entdel tx)
    (princ (strcat "\nError: " msg))
    (princ)
    )
  (setq ent (car (nentsel "\nwähle dim text ")))
  (setq tx (entmakex (list (cons 0 "MTEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbMText") (assoc 1 (entget ent)) (assoc 10 (entget ent)) (assoc 40 (entget ent)) (assoc 50 (entget ent)) (assoc 71 (entget ent))
                                  (assoc 72 (entget ent)))
                  )
            )
  (if (princ "\nneue position wählen ")
  (while (setq gr (grread T 12 0))
    (entmod (subst (cons 10 (cadr gr))
                (assoc 10 (entget tx))
                (entget tx)
                )
          )
    )
    (entmod (subst (cons 10 (cadr gr))
                (assoc 10 (entget ent))
                (entget ent)
                )
          )
      )
;;;  (entdel tx)
  (princ)
  )

------------------
Gruss Dirk

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: 18. Jan. 2013 09: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 cadplayer 10 Unities + Antwort hilfreich

entupd ist nicht gleich Regen , ja
Entupd ist eine AutoLisp-Funktion welche du in der hilfe nachlesen und selbst testen kannst.

Wegen deinem Code-Problem:
Schau dir GRREAD noch mal genauer an, ist ja ausführlich dokumentiert.
(oder du schaust mal dort wo du den Codebrocken kopiert hast, da stand es nämlich sicher auch etwas anders da)

BTW: Den MText kannst du doch komplett kopieren und mußt ihn nicht mühsam zusammenstückeln ?!
Schau mal: (entmakeX(car(nentsel)))
Und dann hilft später ggf. auch noch etwas über nentselP zu wissen.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

[Diese Nachricht wurde von cadffm am 18. Jan. 2013 editiert.]

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 18. Jan. 2013 10: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 cadplayer 10 Unities + Antwort hilfreich

fuer den anfang:
- du schaffst dir eine neue funktion mit übergabeparametern (originalobjekt startpunkt) und rueckgabewert zielpunkt.
- in dieser legst du eine kopie deines objekts an und laesst es am mousezeiger anzeigen (stichwort grread).
- nach angabe zielpunkt loeschen der kopie
- rueckgabe zielpunkt

in deiner eigentlichen funktion verschiebst du dann dein originalobjekt.

spaetere verfeinerungen waeren:
- fehlerabfangroutine
- uebergabe eines auswahlsatzes
- hervorheben ausgewaehlter objekte
- gummibandlinie
- cursordarstellung usw.


gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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: 18. Jan. 2013 10: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 cadplayer 10 Unities + Antwort hilfreich

"in deiner eigentlichen funktion verschiebst du dann dein originalobjekt."

An der Stelle noch einmal der Hinweis das man da ganz schönen Unsinn baut
wenn man einfach die Position des MTextes über die Zuweisung neuer Einfügekoordinaten ändert.

@CADplayer - hast du deinen verschobenenen Bemaßungstext schon mal angeklickt ?

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 18. Jan. 2013 12: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

neurosis


Zitat:
- du schaffst dir eine neue funktion mit übergabeparametern (originalobjekt startpunkt) und rueckgabewert zielpunkt.
- in dieser legst du eine kopie deines objekts an und laesst es am mousezeiger anzeigen (stichwort grread).
- nach angabe zielpunkt loeschen der kopie
- rueckgabe zielpunkt

dem werde ich mal nachgehen und bei gelegenheit darauf zrueck kommen - muss mir die grread funktion noch ein bissel vertiefen

cadffm

Zitat:
noch einmal der Hinweis das man da ganz schönen Unsinn baut

daher finde ich deinen vorschlag fuer meine zwecke hilfreich

danke an alle und schönes we

von cad(arm)breaker

------------------
Gruss Dirk

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