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

Erstellen Sie neue Schichten für Objekttypen und Gruppe in lsp

  • Ersteller Ersteller mazzetti68
  • Erstellt am Erstellt am

mazzetti68

Guest
Hallo, alle!
Ich möchte in lsp erstellen, eine Funktion, die beim Erstellen einer Datenzeile zwei Punkte:
Code:
(setq p1 (getpoint "\nindiziert den Ausgangspunkt der Panellinie: ")
(setq p2 (getpoint "\nindiziert den Endpunkt der Panellinie: ")
(setq p1x (nth 0 p1)
(Satz p1y)
(setq p1z (nth 2 p1)
(setq p1+6 (list(+ p1x 0.06) p1y p1z))

(setq p2x (nth 0 p2))
(Satz p2y)
(Satz p2z)
(setq p2-6 (list p2x p1y p1z))

(Befehl "_line" p1+6 "_non" p2-6 ")
diese Zeile auf einer neuen Schicht erstellen. (Farbe 2, genannt "Zeile")

und einen anderen erstellen, wenn ich einen Kreis mache: (Farbe 10, genannt "Zirkel")
Code:
(setq c1 (getpoint "\nindiziert den Punkt der Mitte des Kreises: ")
(setq c2 (getpoint "\nindiziert den Radius Amplitudenpunkt: ")

(Befehl "_circle" c1 c2)
(Die beiden Codes sind angebracht)

später wird alles gruppiert (autocad group, statt Block).

Vielen Dank im Voraus und... guten Nachmittag für alle!
 
Ich antworte für den ersten Teil, der andere ist unklar.. eine Auswahl alles, um einen Block mit erstellten Objekten zu erstellen?

Wie auch immer:
(vl-load-com)
(setq acadobject (vlax-get-acad-object))
(setq activedocument (vla-get-activedocument acadobject))
(setq schichtbar (vla-get-layers activedocument))
. .
(vla-put-color (vla-add layertable "nome_layer") colore_in_numero)
(vla-put-activelayer activedocument (vla-item layertable "nome_layer"))
;oggetto da disegnare
 
Code:
(setq c1 (getpoint "\nindiziert den Punkt der Mitte des Kreises: ")
(setq c2 (getpoint "\nindiziert den Radius Amplitudenpunkt: ")

(Befehl "_circle" c1 c2)
in Bezug auf diesen Teil des Codes, kann die gesamte Liste einfach auf:
(Kommando "_cicle" bricht), so dass Sie nicht nur die Möglichkeit, einen Punkt für den Kreisradius zu klicken, sondern auch, um es numerisch zu tippen
 
Vielen Dank Dr. lube genau das, was ich brauchte: lächeln:! ... um die Wahrheit zu sagen, dachte ich, es wäre viel komplizierter und entlang des Prozesses. .
für die Gruppe Ich meine, dass das, was ich gerade geschaffen habe, in eine neue Gruppe eingefügt wird (dieser Schlüssel dx, -->group -->group). zum Beispiel, wenn ich meine Lsp wiederhole, die drei Zeilen erzeugt, jedes Mal, wenn ich einen Block mit in diesen drei Zeilen schaffe... Ich hoffe, Sie verstehen...

Kristall Sie haben Recht, ich hatte nicht daran gedacht, setzen Sie sie, so dass es nutzlos ist... dass mir dann die Punkte, die ich ernannt c1 und c2, dienen, um Formen eines Knorpels zu schaffen, und ich habe nur einen Teil extrapoliert, um das Gefühl von meinem Ärger zu verstehen, senno ich bekam einen Beitrag von 1km nur Code;)

Ich habe vergessen... Mit meinem Lsp erstellen Sie ein Chaos von Punkten, also wie erlösche ich sie aus temporärem Gedächtnis? Ist es möglich, es oder so etwas zurückzusetzen? in dem Sinne, dass, wenn ich ein zweites Mal die lsp es Haken bis zu Punkten, die am vorherigen Start erstellt wurden, es c1a c1b abhängig von anderen Punkten...auch wenn ich eine neue Ausgangsposition x, y und z.

Ich hoffe, ich war deutlicher

Guten Abend für alle
 
g
Ich habe vergessen... Mit meinem Lsp erstellen Sie ein Chaos von Punkten, also wie erlösche ich sie aus temporärem Gedächtnis? Ist es möglich, es oder so etwas zurückzusetzen? in dem Sinne, dass, wenn ich ein zweites Mal die lsp es Haken bis zu Punkten, die am vorherigen Start erstellt wurden, es c1a c1b abhängig von anderen Punkten...auch wenn ich eine neue Ausgangsposition x, y und z.
Die Straßen sind 2:
oder temporäre Variablen erstellen:
(defun c:prova (/ var1 var2 var3 var4...)
in diesem Fall werden die Variablen nur auf der Stufe existieren, wenn das Programm sich dreht dann verschwinden

oppura am Ende der Prozedur entleert und daher und als ob sie nie existierten
(Sectq var1 nil var2 nil var3 nil...)
 
Danke Kristall! was ich brauchte:

um den Block zu erstellen, der gerade erstellten Objekte, suchte ich viel im Netz, aber nichts:(... dann war ich gekommen, um sofort den Befehl "_group" zu definieren und dann in irgendeiner Weise den Code des Teils einzufügen, der in der Gruppe sein soll: Ich kläre mit einem Beispiel: (was sicherlich nicht richtig ist, aber von der Idee, zumindest Hoffnung)
Code:
[COLOR="#FF0000"](Befehl "_group")[/COLOR](setq p1 (getpoint "\nindiziert den Ausgangspunkt der Panellinie: ")
(setq p2 (getpoint "\nindiziert den Endpunkt der Panellinie: ")
(setq p1x (nth 0 p1)
(Satz p1y)
(setq p1z (nth 2 p1)
(setq p1+6 (list(+ p1x 0.06) p1y p1z))

(setq p2x (nth 0 p2))
(Satz p2y)
(Satz p2z)
(setq p2-6 (list p2x p1y p1z))

(Befehl "_line" p1+6 "_non" p2-6 ")[COLOR="#FF0000"])[/COLOR]
Kann man so etwas tun? Oder gibt es einen anderen Weg?

Vielen Dank sehr bald

Guten Abend!
 
Hallo, alle!
Ich hatte dieses Problem beiseite gelassen, das ich noch nicht lösen konnte, die Gruppenfunktion, die ich denke, ist loszulassen ... die andere Option wäre die Schaffung eines Blocks, nur dass ich den Prozess verlassen würde, um zu wählen, was zu wählen und dann in den Block die Auswahl einfügen (wie Sie in der Regel tun), würde ich eine automatisierte Sache, die nur eine oder mehrere Zeilen erstellen in den Block eingefügt.
Wissen Sie, ob es möglich ist? und wie konntest du es tun?
Vielen Dank im Voraus und wünschen Ihnen einen guten Abend für alle!
 
die Funktion (entlast) gibt das gerade erstellte Objekt zurück. Sie tun nichts als alle diese Artikel auflisten und sie in den Block fügen :)
 
Vielen Dank Dr.lube für die Bestätigung: Lächeln:, jetzt bin ich bereit zu starten, oder fast .... Ich habe nicht verstanden, wie Sie beabsichtigen, alle Objekte, die ich kreiere, aufzulisten und zu dem Block hinzuzufügen.... Ich könnte ein praktisches Beispiel fragen...
Danke noch mal!
 
Hallo, alle!
Ich suchte das Internet, wie diese Funktion anzuwenden, in dem Sinne, dass ich nur den Namen der Einheit extrahieren kann. Aber ich kann sie nicht auf die Liste setzen, hat jemand ein praktisches Beispiel zu teilen?
Danke im Voraus.
Guten Abend!
 
Tut mir leid, dass ich zu spät bin.
Code:
(Defunc c:test (/)
(setq all nil)
(setq all (ssadd) ; initialisieren Sie die Variable
(Repeat 5)

(ssadd (car (entsel) alle) ; Sie brauchen Entlast, Ich tat so, um zu versuchen, wenn es ging, Auto nur den Namen Objekt zu extrahieren

)
)
:
 
Danke für Ihre Zeit! Ich versuchte, die Funktion zu nutzen, sowie in Ihrem Empio.... Ich versuchte es als Text zu extrahieren, aber autocad gibt mir Fehler:
Code:
befehl: ; fehler: typ falsch objekt: cons <nome 7ff667d15070="" entità:=""></nome>

Code:
(Defun-Test)
(alle nil)
(alles eingestellt (ssadd))
(Repeat 5 (ssadd (car (entlast)) alle))
)
(Befehl "_line" Pause ")
(Test)
(Befehl "_text" "_br" Pause "2" "0" alle)
Weißt du warum?

Hallo und guten Abend für alle!
 
Code:
_$ (setq pippo (entlast)
<nome 7ffff905d60="" entità:=""></nome>

Code:
_$ (setq pippo (entsel)
(<nome 7ffff905d60="" entità:=""> (2504.62 1704.4 0.0)</nome>
Sehen Sie, was die beiden Methoden zurück, verstehen Sie die Notwendigkeit zu verwenden (Auto ..), um das erste Element aus dem Entsel zu extrahieren?

in Ihrem Fall, Entlast, wird nur der Name des Objekts zurückgegeben, ohne die Koordinaten. dann entfernen Sie den (Auto ...)
 
Vielen Dank! Es ist klar, Auto zu entfernen, nur den Namen des Objekts zu haben....aber autocad gibt mir immer noch Fehler..
Code:
; Fehler: Funktion abgebrochen
und der Code...
Code:
(Defun-Test)
(alle nil)
(alles eingestellt (ssadd))
(Repeat 5)
)
(Befehl "_line" Pause ")
(Test)
(Befehl "_text" "_br" Pause "2" "0" alle)
Kannst du mir noch mal helfen?
 
Code:
 (alle nil)
(alles eingestellt (ssadd))
mit (ssadd) wird die Variable initialisiert, daher ist die erste Zeile nutzlos.

Code:
(Repeat 5)
5 mal gleiches Objekt zur Auswahlgruppe, dann wird die Gruppe aus diesem einzigen Objekt zusammengesetzt.


Ich habe nicht verstanden, was Sie tun müssen, schreiben Sie den Namen des Objekts (Linie)?
 
aber ich wiederhole es, um die Funktion zu versuchen und sie zu verstehen, mit dem Entsel es Sinn gemacht.. Es schien mir, dass ohne die erste Zeile die Liste blieb mit den Elementen innerhalb, wenn ich das Programm neu aufgeladen. die Elemente, die Sie in die Liste hinzufügen müssen, um sie in den Wiederholungszyklus zu setzen, während oder was Sie brauchen. .
(Bedingungen für den Zyklus

(alles eingestellt (ssadd))
(Befehl "_line"...)

(seufzt)

(Befehl "_text"...)

(seufzt)
) Endzyklus

Tut mir leid, dass ich am Telefon bin:)
 
Vielen Dank. Lupe
x gp: für die Linie wollte ich versuchen zu sehen, ob ich den Namen des Objekts schreiben könnte, weil ich keine Gruppe erstellen konnte, in dem Sinne, dass ich im Internet gesucht habe, aber die richtige Syntax, die ich nicht fand, wie bestimmte Verwendung _insert und andere _block..., Sie wissen, was es verwendet wird, oder ist es besser, im schnellsten Sinne? und wie, den Namen des Objekts einfügen?
hallo und danke im voraus!
Guten Tag!
 

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