• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Aktualisieren Sie "Objekt" im Datenfeld schnell (zitiert Ebene, Z Quote, wählen Sie Objekt)

  • Ersteller Ersteller Rachele__
  • Erstellt am Erstellt am

Rachele__

Guest
Hallo!
Ich bin neu im Forum, ich habe Sie für ein paar Wochen entdeckt und Sie haben bereits eine Menge Probleme gelöst, so danke Ihnen im Voraus für alle Antworten und Verfügbarkeit von jedem von Ihnen.


Ich bitte Sie um Hilfe in einer Angelegenheit, die mich seit Tagen verfolgt:
Meine Kollegin hat aus den Akten der Quotenpunkte eines Landes exportiert, diese Punkte haben im Besitz der Quote z. Ich muss ein Etikett mit Felddaten einfügen, das diese Quote z angibt, und damit kein Problem.
das Problem entsteht aus der Tatsache, dass ich das Objekt (der Punkt) jedes Mal für jeden Punkt des Bodens ersetzen muss, es ist fast 300... jetzt, da ich keine andere Möglichkeit habe, einen zitierten Plan zu haben, in dem Büro haben wir dieses impending geteilt, und in der Zwischenzeit, dass ich nach einer Lösung gesucht habe, die wir beendet haben.

der Gedanke, dieses Ding durch eine Lispe lösen zu können, einen dynamischen Block, etwas lässt mich nicht ruhig schlafen und deshalb, meine Seele in Frieden zu setzen, gibt es einen Weg, diesen Prozess zu beschleunigen? Wenn ein ähnlicher Fall in der Zukunft kommt, möchte ich bereit sein, dieses Problem schnell zu lösen.

Ich verlasse die Akte, in der ich aufgehängt und Beweise gemacht habe, mit einem Label gemacht, einige nur kopiert, und den Rest der Planpunkte.

Ich danke Ihnen auch nur für das Lesen hier und danke Ihnen sehr für diejenigen, die antworten werden.
Guten Tag!
 

Anhänge

Code:
; pr2: Dezimalzahl 2
;%<\acobjprop object(%<\_objid 1600972624>%).Koordinaten \f "%lu2%pr2%pt4">%

(defun c:addfield2ent (/ osmode sel n count)
(vl-load-com)
(setq sel (get "\nseleziona entita': "))))
(falls (/= sel nil)
(Progn)
(setq osmode)
(Befehl "_osnap" "_none"")
(setq count 0)
(Repeat)
(ssname sel count)
(addfield2ent_motore n)
(setq zählt (1+ zählt)
)
(Osmode einrichten)
)
)
)

(defun addfield2ent_motore (n / ent pt entobject entobjectid Insertpoint ad objmtext ambiente thgth)
(setq ent (get n)
(setq pt (cdr (assoc 10 ent)))
(setq entobject (vlax-ename->vla-object n)
(get-objectidx64 entobject)
Einführungspunkt (vlax-3d-point pt)
ad (vla-get-activedocument (vlax-get-acad-object))
)
(setq objmtext ;memorizza l'oggetto restituito da vla-addmtext
(vla-addmtext)
(wenn (= 1 (vla-get-activespace ad))
(vla-get-modelspace ad)
(wenn (= vla-get-mspace ad) :vlax-true)
(vla-get-modelspace ad)
(vla-get-paperspace ad)
)
)
Einführung
0,03
(Strcat "z: "%<\\acobjprop object(%<\\_objid "entobjectid ">%).Koordinaten \\f \"%lu2%pr2%pt4\">%"
)
)
(vlax-put-property objmtext "attachmentpoint" 7) ; impost giustificazione unten links
)

(defun get-objectidx64 (obj/util)
(setq Dienstprogramm)
(vla-get-activedocument (vlax-get-acad-Objekt))
)
)
(wenn (= Typ obj) 'ename)
(setq obj (vlax-ename->vla-object obj))
)
(wenn (= Typ obj) 'vla-Objekt')
(falls (>) (vl-string-search "x64" (getvar "platform")) 0)
(vlax-invoke-method)
Verwendung
"getobjectidstring"
Oben
Vlax-false
)
(rtos (vla-get-objectid obj) 2 0)
)
)
)
Setzen Sie die Höhe des Textes (Textgröße), der addfield2ent-Befehl verknüpft die Einheit mit dem Feld, das die Koordinaten z enthält.
Wenn Sie die Höhe des Punktes ändern, wird das Feld aktualisiert.

Hi.
 
Code:
; pr2: Dezimalzahl 2
;%<\acobjprop object(%<\_objid 1600972624>%).Koordinaten \f "%lu2%pr2%pt4">%

(defun c:addfield2ent (/ osmode sel n count)
(vl-load-com)
(setq sel (get "\nseleziona entita': "))))
(falls (/= sel nil)
(Progn)
(setq osmode)
(Befehl "_osnap" "_none"")
(setq count 0)
(Repeat)
(ssname sel count)
(addfield2ent_motore n)
(setq zählt (1+ zählt)
)
(Osmode einrichten)
)
)
)

(defun addfield2ent_motore (n / ent pt entobject entobjectid Insertpoint ad objmtext ambiente thgth)
(setq ent (get n)
(setq pt (cdr (assoc 10 ent)))
(setq entobject (vlax-ename->vla-object n)
(get-objectidx64 entobject)
Einführungspunkt (vlax-3d-point pt)
ad (vla-get-activedocument (vlax-get-acad-object))
)
(setq objmtext ;memorizza l'oggetto restituito da vla-addmtext
(vla-addmtext)
(wenn (= 1 (vla-get-activespace ad))
(vla-get-modelspace ad)
(wenn (= vla-get-mspace ad) :vlax-true)
(vla-get-modelspace ad)
(vla-get-paperspace ad)
)
)
Einführung
0,03
(Strcat "z: "%<\\acobjprop object(%<\\_objid "entobjectid ">%).Koordinaten \\f \"%lu2%pr2%pt4\">%"
)
)
(vlax-put-property objmtext "attachmentpoint" 7) ; impost giustificazione unten links
)

(defun get-objectidx64 (obj/util)
(setq Dienstprogramm)
(vla-get-activedocument (vlax-get-acad-Objekt))
)
)
(wenn (= Typ obj) 'ename)
(setq obj (vlax-ename->vla-object obj))
)
(wenn (= Typ obj) 'vla-Objekt')
(falls (>) (vl-string-search "x64" (getvar "platform")) 0)
(vlax-invoke-method)
Verwendung
"getobjectidstring"
Oben
Vlax-false
)
(rtos (vla-get-objectid obj) 2 0)
)
)
)
Setzen Sie die Höhe des Textes (Textgröße), der addfield2ent-Befehl verknüpft die Einheit mit dem Feld, das die Koordinaten z enthält.
Wenn Sie die Höhe des Punktes ändern, wird das Feld aktualisiert.

Hi.
Hallo! Vielen Dank für die Antwort

Ich konnte nicht genau verstehen, wie es funktioniert, damit ich habe:
-Erstellte die .lsp-Datei mit dem Text, den Sie mir geschrieben haben
- mit Appload importiert
- gefolgt Addfield2ent auf der Kommandoleiste und gibt mir: 1697709910116.pngIch versuchte auch, die Lisp-Variable im Datenfeld einzugeben, ohne die Lispe zu finden, die weder mit dem Namen, den ich die Lispe gab (hypothetische "Quotaz") noch mit wohnzimmer.Ich verstehe auch nicht "die Texthöhe einstellen (Textgröße)": Muss ich dies innerhalb des Codes im Lisp tun oder einfach, wenn ich das Textfeld eingeben, um das Datenfeld einzugeben?

Wenn es nicht zu viel Ärger ist, könntest du mich kurz beschreiben, wie man fortfahren soll?


Nochmals vielen Dank für alles
 
die Zeile ersetzen (setq sel (ssget "\nselect units": ")
(prompt "\n select unit': "
(setq sel)

um die Texthöhe zu ändern, aus Befehl, Textgröße schreiben

Bitte.
 
Vielen Dank!

Alles funktioniert, du warst großartig. mit buchstäblich 3 Befehlen konnte ich einen ganzen Plan zitieren.
Ich verlasse die Cad-Datei so angebracht, wie es kommen musste und die Lispe, die ich modifizierte, sollte jemand anderes dienen.

Danke noch mal!
 

Anhänge

Code:
(defun addfield2ent_motore (n / ent tipo pt proprieta entobjectid Insertionspoint ad objmtext ambiente thgth)
(setq ent (get n)
(setq pt (cdr (assoc 10 ent)))
(setq tipo (cdr (assoc 0 ent))
(cond)
((= tipo "point") (setq proprieta "Koordinaten"))
((= tipo "line") (setq proprieta "startpoint"))
((= tipo "circle") (setq proprieta "center"))
((= tipo "insert") (setq proprieta "Insertionpoint"))
)

(setq entobject (vlax-ename->vla-object n)
(get-objectidx64 entobject)
Einführungspunkt (vlax-3d-point pt)
ad (vla-get-activedocument (vlax-get-acad-object))
)
(setq objmtext ;memorizza l'oggetto restituito da vla-addmtext
(vla-addmtext)
(wenn (= 1 (vla-get-activespace ad))
(vla-get-modelspace ad)
(wenn (= vla-get-mspace ad) :vlax-true)
(vla-get-modelspace ad)
(vla-get-paperspace ad)
)
)
Einführung
0,03
"z: "%<\\\acobjprop object(%<\_objid "entobjectid ">%)." proprieta " \\f \"%lu2%pr2%pt4\">%"
)
)
(vlax-put-property objmtext "attachmentpoint" 7) ; impost giustificazione unten links
)
so modifiziert ist in der Lage, mit verschiedenen Arten von Einheiten arbeiten.
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben