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

Utilizzo di subst

  • Ersteller Ersteller anfaloni
  • Erstellt am Erstellt am

anfaloni

Guest
Hey, Leute, ich versuche diesen Bogen zu lösen, aber ich gehe nicht raus.

Ich habe einen Block, dessen Name "hippo" ist und der alle seine Eigenschaften einschließlich der Koordinaten hat, die ich gelesen habe (10. 0.0 0.0 0.0)

Sag mir, wo ich mich irre, weil ich nicht weiß, wo ich meinen Kopf schlagen soll. .

(setq var)

Wählen Sie den Block und die Variable var erwirbt die Block-Besitz-String.

tatsächlich: (entget a) Ich sehe, wie man folgt

((-1). <nome 7f74721d360="" entità:="">) (0 . "Insert") (330. <nome 7f7472069f0="" entità:="">) (5. "583a6") (100. "acdbentity") (67.0) (410. "model") (48. 0.5) (100. "acdbblockreference") (66.1) (2. "1") (10 0.0) (42. 1.0) (43. 1.0) (50. 0.0) (70.0) (44).

Ich möchte nun zwei Fragen stellen:

1) aber warum und ich sage, warum, wenn ich schreibe: (subst (10 100.0 100.0 0.0) (10 0.0 0.0 0.0 0.0 0.0) var) gibt mir Fehler und erlaubt mir nicht, den Block in die neue Koordinaten zu bewegen?

2) Warum, wissend, dass der Block pippo genannt wird, muss ich zuerst von entsel und difine var passieren anstatt zu definieren (setq var "pippo")?

3) warum, wenn ich definieren (Setq-Koordin "100,100,0") mit Befehl kann ich nicht sagen, pippo in Koordination zu bewegen?
(Befehl "_move" pippo coord)

sicher falsch und wahrscheinlich auch konzeptionell, dafür bitte ich ein erfahreneres Auge wie Ihr, wo ich mich irre

Danke für die Verfügbarkeit!</nome></nome>
 
Code:
(Setq var (Gerät (Auto)))
(entmod (setq var (subst (cons 100.0 100.0))

Code:
(setq pippo (Auto))
(setq pos (cdr (assoc 10))
(Setq-Koordin (Liste 100.0 100.0 0.0)
(Befehl "_move" pippo "_non" pos "_non" coord)
 
Code:
(Setq var (Gerät (Auto)))
(entmod (setq var (subst (cons 100.0 100.0))

Code:
(setq pippo (Auto))
(setq pos (cdr (assoc 10))
(Setq-Koordin (Liste 100.0 100.0 0.0)
(Befehl "_move" pippo "_non" pos "_non" coord)
Vielen Dank! aber so muss ich durch den Entrosel gehen, auch wenn ich den Namen des Blocks kenne?
 
Vielen Dank! aber so muss ich durch den Entrosel gehen, auch wenn ich den Namen des Blocks kenne?
Der Blockname für Sie ist Pappel. für die Autocad-Datenbank ist <nome 7f74721d360="" entità:=""></nome>

3) warum, wenn ich definieren (Setq-Koordin "100,100,0") mit Befehl kann ich nicht sagen, pippo in Koordination zu bewegen?
Weil du sagen musst
(Befehl "_move" pippo oldcoord newcoord)

wo pippo muss <nome 7f74721d360="" entità:=""> </nome>(ohne Gruppencode (1 )
oldcoord und newcoord müssen im richtigen Format sein (oder Punkte ohne Gruppencode 10 Listen, oder auch im Textformat wie Tastaturen, sofern beide Variablen das gleiche Format abonnieren)

wenn Sie Befehl verwenden, vergessen Sie, dass die richtige Syntax ist (Befehl "_move" Objekt " altkoord newcoord)
das doppelte rote Zitat dient dazu, den Bewegungsbefehl anzuzeigen, dass die Auswahl der zu bewegenden Objekte beendet ist
 
gp, nur Beobachtung, sowie... lassen Sie mich wissen, was ich kopieren möchte, wenn ich 10 gleich habe. .

Crystal: Vielen Dank für die Geraden. .

aber Sie können mir sagen, warum, wenn ich den Einsatzbefehl benutze
(Befehl "_.-insert" Blockkoord)
wo Block eine Variable "c:\\\\\\lore.dwg" ist und eine Variable mit Koordinaten koordiniert.
Wenn ich den Befehl starte, dann bitte mich manuell, x,y,z-Skala einzufügen und mich zu drehen, um manuell einzugreifen? Gibt es irgendeine Möglichkeit, dass ich sie nicht fragen oder umgehen lassen, wenn ich einen Block über Lisp einfügen?
 
Wenn Sie die Befehlsfunktion verwenden, müssen Sie im Allgemeinen auf den Befehl alle genauen Reihenfolge der Wahlen, Optionen, Eingaben, die Sie von der Tastatur geben würden, und auch in der richtigen Reihenfolge wechseln, um zu berücksichtigen, dass ein Wert "" einem Senden entspricht.
 
Hallo, ich habe ein ähnliches Problem, ich möchte nur den Wert von "x" der Koordinaten ändern, und "y" und "z" lassen sie unverändert, kann es mit Lisp gemacht werden?
 
Es ist möglich, jede Koordinaten besteht aus einer Liste mit mindestens x und y, Sie können x und y extrahieren, x ändern, die Liste neu komponieren und ersetzen.
 
Vielleicht hilft dir das bei der Extraktion.
diese Liste "print" auf einem Boden in -1000 Höhe (nahe aktuelle Arbeit), die Projektion der vertikalen Ansicht der 3d Gesichter und 3d Linien, alle reinen Linie.
wie Sie sehen, ich extrahiere aus Gesichtern und Linien 3d nur x und z, und ich benutze nur diejenigen wie x und y, weil die neue z die Variable "plan" ist, die allen neuen Designs der Projektion gemeinsam ist.
(ps.. Ich brauche Kontrollvergleiche und verschiedene Namen...)



(defun zprint)
(Prompt "\nprint front line: "
(Setvar "cmdecho" 0)
(setq selez(ssget))
(falls (/= nil selez)
(Progn)
(setq max (länge selez) Contasel 0)
(Während)
(setq en (ssname selez contasel) alist (entget en)

(wenn (= "3dface" (cdr(assoc 0 alist))))
(Progn)

(setq und alist)
;---------------------------------------------------------------------------------------------------------------------------------------------------
(setq pnta (cdr(assoc 10 ed)))
(setq pntb (cdr(assoc 11 ed))))
(setq pntc (cdr(assoc 12 ed))))
(setq pntd (cdr(assoc 13 ed)))

(Setq Plan -1000)

(setq pnta (list (car pnta) (cadddr pnta) plan))
(setq pntb (list (car pntb) (cadddr pntb) plan)
(setq pntc (car pntc) (cadddr pntc) plan )
(setq pntd (list (car pntd) (cadddr pntd) plan)


(falls (equal pntb) (progn) (Befehl "_line" pntb) )
(falls (equal pntb pntc) (progn) (Befehl "_line" pntb pntc"))
(falls (equal pntc pntd) (progn) (Befehl "_line" pntd")
(falls (equal pntd pnta) (progn) (Befehl "_line" pntd pnta"))

)
)

(falls (oder (= "3dline" (cdr(assoc 0 alist))))))))
(Progn)
(setq pnta (cdr(assoc 10 alist))) pntb (cdr(assoc 11 alist))
(Setq Plan -1000)
(setq pnta (list (car pnta) (cadddr pnta) plan))
(setq pntb (list (car pntb) (cadddr pntb) plan)
(Befehl "_line" pntb ")
)
)
(setq contasel (+ 1 Buchhalter))
), schließen
)
)
(Setvar "cmdecho" 1)
(Prompt "\nready")
), schließen defunctor
 

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