Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Mtext über Command in einer lsip 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:  Mtext über Command in einer lsip erstellen (1073 mal gelesen)
-ikarus-
Mitglied
Zeichner


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

Beiträge: 142
Registriert: 12.02.2007

ACAD 2015,PSP 2011, Showcase 2015, Mudbox 2015
Indesign CC, Illustrator CC, Photoshop CC, After Effects CC, Premiere Pro CC, Edge Animate CC, Acrobat DC Pro mit PitStop Pro,
Visual Studio 2013
Notepad++
Rechner: HP Z620 Workstation
NVIDIA Quadro K4000

erstellt am: 11. Nov. 2014 12:53    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,

ich wollte mal fragen, warum MTEXT der über (command "mtext" pt1 pt2 ) erstellt wird sich wie -MTEXT verhält. Außerdem sind die Griffe anders als bei MTEXT der über den Befehl MTEXT erstellt wurde und wenn ich den Text verschiebe, hat er beim Verschieben optisch einen Rahmen, der wieder verschwindet, sobald man den verschieben Befehl abgeschlossen hat.

Ich habe mir eine Lisp gebaut, in der ich MTEXT unter einen bestehenden MTEXT mit einem Abstand setzten will und dazu habe ich den Befehl (command "MTEXT" ...) verwendet und da ist
mir das aufgefallen.

Kurz gefragt gibt es unterschiedliche MTEXTE in AutoCAD und wenn ja, wo unterscheiden sie sich? 

Code:

(defun C:MTEXTABSATZ ( / *error*
OBJ spf-eingabe spf ent AWS MTEXTbasis
ptX ptY ptZ MTEXTboxhoehe MTEXThoehe MTEXTboxbreite
MTEXTfaktor MTEXTzeilen MTEXTabsatzY MTEXTzeilenhoehe
OLDLAYER ofang
)
(vl-load-com)

;;;;;;;;;;;;;;;;;;;
    (defun *error* ( msg )
        (LM:endundo (LM:acdoc))
        (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
            (princ (strcat "\nError: " msg))
        )
        (princ)
    )
(setq ofang (getvar "osmode" )) ;Legt fortlaufende Objektfangmodi fest
(setvar "osmode" 0 ) ;Objektfan auf aus
(if (= spf2 nil )(setq spf2 25 ))
(princ "\n Geben Sie den gewünschten Absatzabstand an: [17.5 / 20 / 22.5 / 25 / 30] Aktuell <" )(princ spf2 )(princ "> :  " )
(if (not (setq spf-eingabe (getreal )))(setq spf-eingabe (float spf2 )))
(setq spf2 (float spf-eingabe))
(setq spf (float spf-eingabe))

(while (not (and (setq ent (car(entsel "\nMText wählen: ")))(= (cdr (assoc 0 (entget ent))) "MTEXT"))))
(setq AWS (entget ent))
(setq OBJ(vlax-ename->vla-object ent))
(setq MTEXTzeilenhoehe (vlax-get-property obj 'LineSpacingDistance ))

(command "bks" "Objekt" ent )

(setq MTEXTbasis (cdr (assoc 10 AWS )))
(setq MTEXTbasis (trans MTEXTbasis 0 1 ))
(setq ptX (car MTEXTbasis ))
(setq ptY (cadr MTEXTbasis ))
(setq ptZ (caddr MTEXTbasis ))
(setq MTEXTboxhoehe (cdr (assoc 43 AWS )))
(setq MTEXThoehe (cdr (assoc 40 AWS )))
(setq MTEXTboxbreite (cdr (assoc 41 AWS )))
(setq MTEXTfaktor  (cdr (assoc 44 AWS )))
(setq MTEXTzeile (rtos (/ MTEXTboxhoehe MTEXTzeilenhoehe ) 2 1 ))
(setq MTEXTzeilen (substr MTEXTZeile 1 (- (strlen MTEXTZeile) 2)) )
(setq MTEXTabsatzY (+ (* (atoi MTEXTzeilen) MTEXTzeilenhoehe ) spf ))

(setq ptXN ptX )
(setq ptYN (- ptY MTEXTabsatzY ))
(setq ptZN ptZ)
(setq ptXN2 (+ ptX MTEXTboxbreite ))
(setq ptYN2 (- ptY (+ MTEXTabsatzY 50.0 )))
(setq ptZN2 ptZ )
(setq ptN (list ptXN ptYN ptZN ))
(setq ptN2 (list ptXN2 ptYN2 ptZN2))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(initget 1 " Text Makierung   ")
(setq prüf (getkword "\nText Punktmakierung setzen bzw. neuen MText eingeben: [Makierung / Text] <Makierung>"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (or (= prüf "Makierung")(= prüf "")(= prüf "M"))
(progn
(princ "\nEs wird ein Makierungspunkt gesetzt!")(princ)
(if (= nil (tblsearch "LAYER" "K-Linie")) ; sucht in der Layerliste nach K-Linie
(progn
  (entmake
(list '(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
;erstellt den Layer K-Linie
(cons 2 "K-Linie")
'(70 . 0)
'(62 . 6)
'(6 . "Continuous") ;
'(290 . 0) ;
;'(370 . 0 )
)
  )
)
)
(setq OLDLAYER (getvar "CLAYER" ))
(setvar "clayer" "K-Linie" )
(command-s "_.point" ptN )
(setvar "clayer" OLDLAYER )
)
(progn
(princ "\nEs wird ein MText gesetzt bitte geben sie den Text ein!" )(princ)
(command-s "_.MTEXT" ptN ptN2 )
)
)
(command "bks" "W" )
(setvar "osmode" ofang ) ;Objektfan auf ein
(princ)
  )


[Diese Nachricht wurde von -ikarus- am 12. Nov. 2014 editiert.]

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