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

Schreiben Sie den Wert der Bereiche automatisch

  • Ersteller Ersteller lollazzo
  • Erstellt am Erstellt am

lollazzo

Guest
Ich habe Bereiche, und ich brauche eine Möglichkeit, eine Textbox innerhalb des Bereichs zu haben, die den Wert angibt
 
Suche im Internet finden Sie reiche Versionen. .
Hallo Kumpel, hallo für alle.
Das ist mein erster Beitrag auf diesem Forum.
Ich habe einige Lisp-Programme gemacht, einschließlich der Berechnung der Bereiche.
Ich befestige das area2.lsp-Programm, etwas beispielhaft für das Forum.
Ich denke, es ist interessant, weil es kein Objekt geben darf, um den Bereich zu berechnen.
das Programm lokalisiert automatisch die Kontur und schreibt Bereich und Umfang (auch mehr Konturen hinzufügen Bereiche).
Ich habe die Datei angehängt (nicht, wenn richtig).
Auf jeden Fall habe ich auch die Liste gesetzt.
Hallo alle und... Sag, es ist schön, sonst schreibe ich nicht mehr.
Hallo alle, betoniera


; area2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(defun c:area2 ()
(falls ht nil (setq ht 30) ;
(setq a (strcat "\nimmetti testo ht in Unit Design : <" (rtos ht) "> :")
ht1 (getreal a)
)
(falls (/= ht1 nil) (setq ht ht1)); Texthöhensteuer
(Befehl "_setvar" "textsize" ht)
(Setq gs)


0)
)
(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "solid")

;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (getvar "area")
(setq ar (+ ar))
(setq pe1 (getvar "perimeter")
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;

(Befehl "_color" 3)
(Befehl "_text" "_j" "_c" p2 "" 0 (Strcat "area mq " (rtos ar) " perimeter m " (rtos pe))))
(Befehl "_move" "_l" p2)
)
 

Anhänge

hallo beton, ich habe versucht, Ihre Fülle, aber es gibt mir unbekannte Befehl, wenn es die Fläche schreiben muss.... .
possiedo autocad 2012 ita...
Was kann ich tun?
Danke.
 
hallo beton, ich habe versucht, Ihre Fülle, aber es gibt mir unbekannte Befehl, wenn es die Fläche schreiben muss.... .
possiedo autocad 2012 ita...
Was kann ich tun?
Danke.
Hallo Mann
Ich versuchte das Area2.lsp Programm, weil ich es modifizierte, um es zu exemplifizieren, und ich dachte, vielleicht wäre etwas passiert.
Aber es ist okay, also weiß ich nicht, warum du nicht arbeitest.
offensichtlich müssen Sie es zuerst aufladen (Geräte - autolisp - Gebührenanwendung) und dann müssen Sie es mit Area2 Befehlen senden.
Ich lade Sie ein, es wieder zu versuchen. Sie können auch mehr Bereiche klicken
Falls es nicht funktioniert, lass es mich wissen.
Area2.jpg
 
Zuletzt bearbeitet von einem Moderator:
hi betoniera, ich habe wieder getrunken, aber schreibt mir nicht.... das ist, was mich aus der Befehlszeile erzeugt.
...
Befehl: _appload area2.lsp geladen.
Befehl:
Befehl:
Befehl: area2
Text ht in Designeinheit <30>:50
_setvar Typ Variable Name oder [?]: Textgröße
Typ neuer Wert für Textgröße <0.1600>: 50.0000000
Befehl: _color
Standard Objektfarbe [Truecolor/CAtalogocolori] <3 (grün)> 7
Befehl: _setvar Typ Variable Name oder [?] <textsize>: hpname
Typ neuer Wert für hpname <"angle">: Feststoff
Befehl:
Punkt _-bound
internen Punkt angeben oder </textsize>[opzioni Avanzate]: Gesamtauswahl. .
Auswahl von allem, was Sie sehen können. .
Analyse ausgewählter Daten.
Analyse der inneren Inseln im Fortschritt...
internen Punkt angeben oder [opzioni Avanzate]:
Konturen erstellt 1 Polyline
Befehl: Bereich
den ersten Winkel oder [Oggetto/Aggiungi area/Sottrai area] <oggetto>O
Objekte auswählen: _
Fläche = 17555.0000, Perimeter = 630.0000
Befehl: _
Stromablösungsmodell: fester Feststoff
den internen Punkt angeben oder </oggetto>[Proprietà/Seleziona oggetti/Disegna
contorno/elimina Contorni/Avanzate/ORdine di
visualizzazione/Origine/annotatiVo/COLore tratteggio/LAyer/Trasparenza]...
Objekte auswählen: gefunden(s) 1
Objekte auswählen:
Stromablösungsmodell: fester Feststoff
den internen Punkt angeben oder [Proprietà/Seleziona oggetti/Disegna
contorno/elimina Contorni/Avanzate/ORdine di
visualizzazione/Origine/annotatiVo/COLore tratteggio/LAyer/Trasparenza]:
Befehl: _erase
Objekte auswählen: gefunden(s) 1
Objekte auswählen:
Befehl:
Punkt
- Ja.
Standard Objektfarbe [Truecolor/CAtalogocolori] <7 (weiß)>: 3
Befehl: _text
Aktueller Textstil: "non annotative rates" Texthöhe: 0.1600
Anmerkung: Nein.
Angabe des Anfangstextpunktes oder [Giustificato/Stile]: _j Typ
eine Option [Proporzionale/adaTta/Centro/Mezzo/Destra/AS/AC/AD/MS/MC/MD/BS/BC/BD]:
Textzentrum angeben:
Drehwinkel des Textes <0>
Typ Text: 0)
Befehl: Bereich mq 17555 perimeter m 630 befehl unbekannt "area mq 17555
Perimeter m 630". drücken f1 für die Führung.
Befehl: _move
Objekte auswählen: _l found(s) 1
Objekte auswählen:
Basispunkt oder [Spostamento] <spostamento>:
zweiter Punkt oder <utilizza come="" primo="" punto="" spostamento="">:
zweiter Punkt oder <utilizza come="" primo="" punto="" spostamento="">:
. ...
Dank für das Interesse, weil ich nicht verstehen kann...</utilizza></utilizza></spostamento>
 
Es ist das übliche Stilproblem mit der bereits eingestellten Höhe. mit dem Style-Befehl müssen Sie die Texthöhe auf 0 setzen.
 
Natürlich ist confutatis mehr erfahren als ich. Ich wäre nicht angekommen.
confutatis: Es wird bedeuten, dass ich Ihnen nach dem berühmten Fischessen auch die Limoncello anbieten werde.
Hallo, zu prosyma
 
Bye to all,
Ich versuchte diese sehr nützliche App auf autocad 15 und es funktioniert großartig,
Ich fragte mich, ob es möglich war, den Umfang und den Bereich auf zwei Zeilen zu setzen und auf zwei Werte nach dem Komma zu reduzieren.
Danke im Voraus.
 
Ich habe die erforderlichen Änderungen vorgenommen.
Hier ist die neue Liste.
Hi.

; area2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(defun c:area2 ()
(falls ht nil (setq ht 30) ;
(setq a (strcat "\nimmetti testo ht in Unit Design : <" (rtos ht) "> :")
ht1 (getreal a)
)
(falls (/= ht1 nil) (setq ht ht1)); Texthöhensteuer
(Befehl "_setvar" "textsize" ht)
(Setq gs)


0)
)
(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "solid")
;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p1
p3 (Liste (Auto p2) (cadr p2) ht ht
)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (getvar "area")
(setq ar (+ ar))
(setq pe1 (getvar "perimeter")
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;
(Befehl "_color" 3)
(Befehl "_text" "_j" "_l" p2 "" 0 (Strcat " sqm area " (rtos ar 2 2))))
(Befehl "_text" "_j" "_l" p3 "" 0 (Strcat "perimeter m " (rtos pe 2 2)))
(Befehl "_move" p2 p3 ") p2)
)
 
Ich habe die erforderlichen Änderungen vorgenommen.
Hier ist die neue Liste.
Hi.

; area2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(defun c:area2 ()
(falls ht nil (setq ht 30) ;
(setq a (strcat "\nimmetti testo ht in Unit Design : <" (rtos ht) "> :")
ht1 (getreal a)
)
(falls (/= ht1 nil) (setq ht ht1)); Texthöhensteuer
(Befehl "_setvar" "textsize" ht)
(Setq gs)


0)
)
(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "solid")
;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p1
p3 (Liste (Auto p2) (cadr p2) ht ht
)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (getvar "area")
(setq ar (+ ar))
(setq pe1 (getvar "perimeter")
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;
(Befehl "_color" 3)
(Befehl "_text" "_j" "_l" p2 "" 0 (Strcat " sqm area " (rtos ar 2 2))))
(Befehl "_text" "_j" "_l" p3 "" 0 (Strcat "perimeter m " (rtos pe 2 2)))
(Befehl "_move" p2 p3 ") p2)
)
Danke!
 
esempio per lisp.jpgIch benutze a2f zur Berechnung von Flächen. Ich möchte auch den Umfang einfügen und möchte vor dem Wert des Bereichs und des Umfangs einen festen Teil des Textes mit Schreiben:

Fläche (Flächenwert)
Birnen (Perimeterwert).

Ich hoffe, ich habe es gut erklärt, ich hänge auch ein Foto an. Seit Ich muss dieses Verfahren n mal wiederholen, auf diese Weise würde ich viel Zeit sparen, ohne alles von Hand zu schreiben.

Danke im Voraus.

p.s, wenn Sie eine Txt-Datei verknüpfen mussten, erklären Sie mir auch, wie man die Lisp erstellen? Ich kann das nicht.
 
Hallo! wenn ich die Lippe belade, schreibt mir:
area2.lsp geladen.
befehl: ; fehler : übermäßig rechte Klammern in Eingabe.

Vielen Dank für jede Hilfe...
Ich habe immer noch die Liste dieser Datei (ich benutze eine komplexere, die die verwendeten Einheiten erkennt)
Ich habe es versucht und es funktioniert. Ich sende Ihnen die Liste, kopieren Sie sie in eine Datei namens a2.lsp und fügen Sie sie in das Verzeichnis "Unterstützung" ein.
Es ist wahrscheinlich, dass, wenn Sie diese Operationen mit der vorherigen Datei gemacht haben, Sie nicht die letzte Klammer kopiert haben. Sei vorsichtig.
Ich umbenannte es a2.lsp, um den Befehl zu erleichtern (a2)
Wenn Sie verschiedene Maßeinheiten haben, ändern Sie auch die Schriften unten: "m2 Bereich " und "m Umfang " und setzen Sie, was Sie wollen.
Hi.

; a2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(Defun c:a2 ()
(falls ht nil (setq ht 30) ;
(setq a (strcat "\nimmetti testo ht in Unit Design : <" (rtos ht) "> :")
ht1 (getreal a)
)
(falls (/= ht1 nil) (setq ht ht1)); Texthöhensteuer
(Befehl "_setvar" "textsize" ht)
(Setq gs)


0)
)
(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "solid")
;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p1
p3 (Liste (Auto p2) (cadr p2) ht ht
)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (getvar "area")
(setq ar (+ ar))
(setq pe1 (getvar "perimeter")
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;
(Befehl "_color" 3)
(Befehl "_text" "_j" "_l" p2 "" 0 (Strcat " sqm area " (rtos ar 2 2))))
(Befehl "_text" "_j" "_l" p3 "" 0 (Strcat "perimeter m " (rtos pe 2 2)))
(Befehl "_move" p2 p3 ") p2)
)
 
Hallo, alle.
Gratulationen für das Forum und danke für diese Lispe!
seit ich die Lsp-Dateien entdeckte, die eine Welt mir geöffnet hat:)

Ich beabsichtige, diese "Makro" zu schaffen, aber bis dahin.... wie kann ich tun, um zu vermeiden, das feste Retino zu diesen Lippen zu schaffen?
Wenn ich den Befehl "a2" benutze, um Bereich und Umfang zu schreiben, erstelle ich auch einen nicht notwendigen vollen Retino innerhalb des Bereichs, den ich berechne, und ich weiß nicht, wie ich es vermeiden kann.

Danke.
Ich habe immer noch die Liste dieser Datei (ich benutze eine komplexere, die die verwendeten Einheiten erkennt)
Ich habe es versucht und es funktioniert. Ich sende Ihnen die Liste, kopieren Sie sie in eine Datei namens a2.lsp und fügen Sie sie in das Verzeichnis "Unterstützung" ein.
Es ist wahrscheinlich, dass, wenn Sie diese Operationen mit der vorherigen Datei gemacht haben, Sie nicht die letzte Klammer kopiert haben. Sei vorsichtig.
Ich umbenannte es a2.lsp, um den Befehl zu erleichtern (a2)
Wenn Sie verschiedene Maßeinheiten haben, ändern Sie auch die Schriften unten: "m2 Bereich " und "m Umfang " und setzen Sie, was Sie wollen.
Hi.

; a2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(Defun c:a2 ()
(falls ht nil (setq ht 30) ;
(setq a (strcat "\nimmetti testo ht in Unit Design : <" (rtos ht) "> :")
ht1 (getreal a)
)
(falls (/= ht1 nil) (setq ht ht1)); Texthöhensteuer
(Befehl "_setvar" "textsize" ht)
(Setq gs)


0)
)
(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "solid")
;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p1
p3 (Liste (Auto p2) (cadr p2) ht ht
)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (getvar "area")
(setq ar (+ ar))
(setq pe1 (getvar "perimeter")
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;
(Befehl "_color" 3)
(Befehl "_text" "_j" "_l" p2 "" 0 (Strcat " sqm area " (rtos ar 2 2))))
(Befehl "_text" "_j" "_l" p3 "" 0 (Strcat "perimeter m " (rtos pe 2 2)))
(Befehl "_move" p2 p3 ") p2)
)
 
.... wie kann ich tun, um zu vermeiden, solide retino zu dieser Lispe zu erstellen?
Wenn ich den Befehl "a2" benutze, um Bereich und Umfang zu schreiben, erstelle ich auch einen nicht notwendigen vollen Retino innerhalb des Bereichs, den ich berechne, und ich weiß nicht, wie ich es vermeiden kann.
das retino hat die Funktion, das Flächenobjekt der Berechnung visuell hervorzuheben.
Bereiche können mehr als eine sein (die Programmsummen).
der kontinuierliche retino hat den Fehler, dass Sie nicht verstehen, wenn ein Bereich 2 mal geklickt wurde.
für diese Tatsache modifizierte ich das Programm mit einem gestreiften Retino, dessen Neigung zu jedem clik variiert.
also, wenn Sie 2 mal einen Bereich anklicken, sehen Sie die doppelte Netzhaut.
Ich denke, es ist notwendig.
wenn Sie nicht zeichnen wollen, ist es genug, um die Linie zu ersetzen
(Befehl "_-bhatch" "_s" en "") mit
;(Befehl "_-bhatch" "_s" en "") (auf diese Weise wird diese Zeile zu einem einfachen Kommentar und wird nicht ausgeführt)
Ich schicke Ihnen die neue Liste
Hi.



; a2.lsp berechnet den Bereich und Umfang von mehreren Zahlen
; weich. betoniera - autocad 2014

(Defun c:a2 ()
(Prompt "\n ")
(setq n (getvar "useri1")
(cond)
((= n 0); Einheit cm
(Setq um "cm" Coef 100)
)
((= n 1); Einheit mm
(setq um "mm" coef 1000)
)
((= n 2); Einheit m
(setq um "m" coef 1)
)
;

(falls ht1 nil (setq ht1 5)
(falls retino-ds nil (setq retino-ds 5) ;
(setq sc)
ort (getvar "orthomode")
osm (getvar "osmode")
b (Strkat "\nheight text in mm <" (rtos ht1) ">: ")
ht (getreal b)
(rtos retino-ds) "
ds (getreal a)
Angr 0
)

(falls ht nil (setq ht ht1); Texthöhensteuer;
(falls (/= ds nil) (setq retino-ds ds))
(setq ds1 (* retino-ds sc 0.1)
ht (* ht (getvar "dimscale") 0,1
g


0)
)

(Befehl "_color" 7)
(Befehl "_setvar" "hpname" "_u")
(Befehl "_setvar" "hpspace" ds1)
;(Befehl "_setvar" "hpang" angr)
(Befehl "_setvar" "textsize" ht)
(Befehl "_setvar" "orthomode" 0)
(Befehl "_setvar" 0)

;loop, von dem nur zurückkehrt
(nicht (eq str)
(setq p1 (getpoint "\nimmetti point "))
(setq angr (+ angr 45))
(Befehl "_setvar" "hpang" angr)
(cond)
(=p1 nil)
(setq str ") ;
)
;
(cond)
(/= p1 nil)
(setq p2 p)
(Befehl "_-boundary" p1 ")
(setq en (entlast)
(Befehl "area" "_o" "_l")
(setq ar1 (/ (getvar "area") coef coef coef)
(setq ar (+ ar))
(setq pe1 (/ (getvar "perimeter") coef
(seq pe (+ pe))
(Befehl "_-bhatch" "_s" en "")
(Befehl "_erase" en ")
)
;
;

(Befehl "_color" 3)
(Befehl "_text" "_j" "_c" p2 "" 0 (Strcat "area mq " (rtos ar) " perimeter m " (rtos pe))))
(Befehl "_setvar" ort)
(Befehl "_setvar" osm)
(Befehl "_move" "_l" p2)
)
 

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