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

Lisp auf Skalenlinie Typ

  • Ersteller Ersteller Betoniera
  • Erstellt am Erstellt am

Betoniera

Guest
wenn die Menge an Dwg-Designs geschieht, manchmal, Typ-Linien mit Skalen nicht angemessen für mein Design und differenziert haben.
Beispielsweise werden einige Linien (Punkt-Linientyp) im gleichen Design unterschiedlich skaliert.
Ziel ist es, alle Linien auf die Typ-Linie = 1 Skala mit einem Programm lisp zu bringen.
individuell ist es einfach, Eigenschaften zu verwenden.
aber ich möchte ein automatisiertes Verfahren für das gesamte Design: alle Zeilen auf die Linienartskala = 1 melden
die Ltscale-Variable ist nicht gut, weil sie proportional alle Linien skaliert, die die einzelne Skalierung halten.
Ich konnte nicht verstehen, welche Variable ich eingreifen kann, um alle Zeilen auf die Zeilenartskala zu melden = 1
Haben Sie Vorschläge dazu?
Danke, hallo an alle
 
aber entschuldigen... wenn sie nur Linien sind, warum nicht alle Auswahlen und in der Palette der Eigenschaften den Wert der Skalenart Linie auf 1 auferlegt?
 
ltscale ist der Maßstab des allgemeinen Typs dwg
die lineare Skala der einzelnen Einheit ist unterschiedlich, und sagt, dass die Einheit ausgehend von dem allgemeinen Ltscale-Faktor mit dem Typfaktor der Einheit multipliziert wird.
Dieser Wert (falls abweichend von 1) wird in der Gruppe 48 des Unternehmens von allen Unternehmen gemeldet (in dieser Hinsicht fehlt die Hilfe 2020)
 
Vielen Dank für Ihre Beiträge
Tschüss.
der Grund, warum ich versuche, dieses Verfahren zu implementieren ist, dass ich eine lisp Verfahren der "Normalisierung" von Dateien, die von anderen importiert.
in dieser Normalisierung ändere ich die Zitate, Skalen, Schichten und andere Dinge, um sie meinem Stil anzupassen.
Ich wollte die Normalisierung der Linien hinzufügen. Das ist alles.

Ich werde versuchen, mit Gruppencode 48 zu experimentieren
Hi.
 
für Kristall
Ich habe versucht, 2 Traktionspunkte einzufügen, eine mit Skalenfaktor 1 und eine mit Skalenfaktor 3
Etwas Neugieriges passiert: Wenn sie Zeilendaten mit Skalenfaktor 3 untersuchen, finde ich Gruppencode 48 mit Faktor 3.
Wenn sie stattdessen die Zeilendaten mit dem Skalenfaktor 1 untersuchen, wird der Gruppencode 48 nicht geschrieben, dann geht der Befehl "assoc 48" falsch, um den Skalenfaktor zu extrahieren.
Ist das normal? .
Hi.
 
"Dieser Wert (falls abweichend von 1) wird in Gruppe 48 des Unternehmens gemeldet"
vor dem Wechsel, überprüfen Sie die Anwesenheit, wenn (/= (cdr (assoc 48 Entitäten) nil) dann zum Unterteil.
 
Rpor guter Morgen
Gestern Ich versuchte, ein allgemeines Ssget zu filtern, indem ich es an Gruppen 48 Code bin, ohne Ergebnis. Aber ich glaube, ich komme einfach nicht dorthin.
Hättest du einen Tipp?
Ich schreibe (ssget "x"((48 . "*")), aber es gibt mir Fehlercode..
 
@cristallo Test mit (ssget "x" (cons 0 "line") '(-4 . "/=") (cons 48 1))

Allerdings würde ich angesichts des Zwecks von beton die gesamte Typeline = 1 tragen, ohne jede Art von Einheit zu filtern.
Code:
(setq a (ssget "_x" )
(Repeat (Setq n (Länge a)))
(Einsatzpropertyvalue (Name a (Einsatz q n (1- n)) "linetypescale" 1)
)
 
Hallo alle
Ich habe das Programm implementiert
- Auswahlpunkt 1
- Auswahlpunkt 2
- Wählen Sie Zeilen mit Code 48, die von 1 verschieden sind (setq ss1 (ssget "_c" p1 p2 ' ((0. "line") (-4 . "/=") (48.1)))
- Zyklus für jedes Unternehmen, um Gruppencode, Regeneration usw. zu ändern.

kommt gp, schreibt 3 Zeilen und Arbeit.
Was sage ich? .
guten Ostern zu allen und danke gp.
Hallo, nächstes Mal.
 
kommt gp, schreibt 3 Zeilen und Arbeit.
Was sage ich? .
Was meinst du? Sie sind gekapselt in der Antwort von jemandem, der Komplimente von Lee Mac hatte, was reden wir darüber?
ZEITSCHRIFTEN Abgesehen davon habe ich mir nicht vorgestellt, dass ich auf diese Weise eine Filterliste in ssget erstellen könnte (ich lese sie und immer noch verdreht meine Augen), aber das ernste Problem ist, dass ich nicht nur die Zeilen nehmen würde, da Gruppe 48 allen Wesen gemeinsam ist.
Ich versuchte, Wildcards in der Filterliste zu verwenden (Hilfe sagt, Sie können) aber es macht mich immer Fehler..
 
... Ich würde nicht nur die Linien...

Verwendung von ssget zur Auswahl von Objekten mit scalatypelinea verschieden von 1(setq a (ssget "_x" (list '(0 . "*line") '(-4 . "/=") '(48.1))))))
Wählen Linie, PolyLinie, lwpolyLinie, spLinie(setq a (ssget "_x" (list '(-4 . "/=") '(48.1)))))
Wählen Alle Objekte(setq a (ssget "_x" (list '(0). "line,arc,circle,text,lwpolyline,spline,ellipse") '(-4 . "/=") '(48.1))
Wählen Sie Objekte

:
 
Reden wir darüber:)
Mein Wissen kommt vom Wandern auf den Foren, wo sie die Gurus der Lispe schreiben, wenn ich etwas Interessantes sehe, nehme ich Notizen.
Aufstehen ssget:
(ssget "_+.:s:e:l" '(0 . "line"))Filtererklärung:
Code:
:s erlaubt die Auswahl nur einmal
+. eingefügt vor :s compels ssget in 'point'-Modus, ähnlich wie
das Auto zu 0 holen
Grundsätzlich wählen Sie mit Pickbox und öffnen Sie das Auswahlfenster nicht
:und erfasst ein Objekt zu einem Zeitpunkt über Scheibe
Auswahl (pickbox) und nicht durch Fenster
:l schließt blockierte Schichten aus
_das letzte "sichtbare" Objekt in der Datenbank hinzugefügt
_ "underscore" startet Befehl in Englisch von lokalen Versionen
Es ist notwendig, daß
_a all (all) als "x", aber mit "freeze" Filter
Sie können alle Objekte auf abgefrorenen Schichten auswählen.
_b box - wählen Sie alle Objekte innerhalb oder überqueren Sie ein Rechteck, das von zwei Punkten angegeben wird.
wenn die Punkte von rechts nach links angegeben werden, ist Box gleich "crossing", andernfalls "windows"
:d Duplikate, sonst werden Duplikate ignoriert
: die vernachlässigten Schichten blockiert
:p vernachlässigen
x Erweiterte Suche (vollständige Suchdatenbank), wenn Sie keinen Ssget-Filter bereitstellen, wählen Sie alle
Datenbankeinheiten, einschließlich Einheiten auf gefrorenen Schichten und außerhalb des sichtbaren Bildschirms.
Darüber hinaus können Sie bei der Eingabeaufforderung "Objekte auswählen" hinzufügen, entfernen, absagen

Mischtyperfassung(ssget "_x" (list '(8. "pippo") '(0. "line") (cons 62 5)))
(ssget "x"(0 . "text,mtext,line,arc")(8 . "lines"))
rote und gelbe Objekte auf der Linienschicht:
(ssget "_x"(8 . "lines") (-4.)<or") "or="" (-4="" (62="" .="" 1)="" 2)="">"
</or")>Objekte auf zwei Schichten auswählen
Erfassung von Variablenwerten(setq lay1 "pippo")
(setq lay2 "pluto")
(Satz-Salz (Satz "_x" (Liste (cons 8 (Strcat lay1 "," lay2)))))die Namen der Schichten kennen(setq a (sssget "_x" (list '(8 . "pippo,pluto")) (cons 0 "circle")))
Texte beginnend mit a und b(ssget "_x" ((0 . "text,mtext")(1 . "a*,b*")))
polilinee con archi(ssget "_:l" '((0. "lwpolyline") (-4 . ">>") (42. 0.0)))
Polyline ohne Bögen (ssget "_x" (0 . "lwpolyline")(-4). "<not")(-4 "<="" .="">"(42). 0,0)(-4 . "nicht>")
</not")(-4>Objekte an einem Punkt auswählen(Sag pt)
Wählen Sie Objekte durch den Punkt "pt" mit Toleranz (0.001)(Sieges "_c" (mapcar ' pt '1e-3 1e-3)
geschlossene Polylines (ssget '(((0. "*polyline") (-4 . "&") (70.1)))
...und tausend andere Kombinationen;)
 
Ich vermisse das Handbuch!
In den Listenfiltern fehlt das Handbuch sehr. Es sagt Ihnen, dass Sie es tun können, aber es macht Sie ein scraut Beispiel und schließt sie.
bereits die Verwendung von (-4 . ) wird nicht erklärt, an den mehrfachen Bedingungen fehlt es dann.
ist das erste Mal, dass ich die Verwendung von comma in der Entity-Gruppe sehe (0 . "line,block") oder_o
dann verwenden (-4 . ">>): Was bedeutet das?
Sie haben ihnen eine -4 nicht geöffnet und geschlossen (und hier verstehe ich) aber die (-4 . ">>") (42. 0.0) was ist es?
Bitte erleuchten Sie uns.

Ich lernte die Lippe auf dem Handbuch (Papier!) der Version 12 (nicht 2012.. die 12 ordnungsgemäß).
Ich finde die 2010 Hilfe lisp reduktiv im Vergleich zu 12, dass von 2020 einfach grundlegend. Ich meine, eine Regression.
 
dxf 42 bezieht sich auf die Krümmung von Lwpolyline, wenn man ein Entget sieht, dass es einen Wert für jeden Scheitel gibt, wenn es Wert ist 0,0 das Segment ist gerade (nicht < > 0,0)
in der Theorie konnte man auch anders ohne nicht tun (-4 . "=") (42. 0.0)

Ich werde es nehmen, um Abschied zu sagen SALUTO.gif
 
Vielen Dank für Ihre Beiträge
markieren, dass durch die Prüfung mit dem Code von gp und dwg geschrieben von anderen, manchmal wird ein Fehler erzeugt, dass ich nicht untersuchen wollte.
Ich habe jedoch das folgende alternative Programm abgeschlossen, das ich als Alternative zu gp zur Verfügung stellen.
Hallo alle

; verwandelt alle Zeilen in Skalenfaktor 1
(setq ss1 (ssget "x" ((0 . "line"))))); wählen Sie alle Zeilen aus
Anzahl 0 ;azzera Zähler
emax (Länge ss1)
)
(Während (< Count emax) ; Zyklus für jedes Institut
(setq en (Name ss1 count) ;prileva entita
und (entget en)
el (assoc 48 e) ;Preleva la scala linea code 48
el1 (cons 48 1); definiert die neue Skala (48.1)
und (subst el1 el ed)
)
(entmod ed)
(setq zählt (1+ zählt)
;
 
betoniera ciao
Ihr Code, auf den ersten Blick, sollte Ihnen Fehler geben, weil, wenn das Unternehmen bereits Line Scale=1 Gruppe 48 existiert nicht, so (setq el) sollte Ihnen nil geben und dann der Unterste schief gehen
 
Er sollte es aber nicht geben.
Aus diesem Grund habe ich den Code 48 nicht gefiltert.
im Zweifelsfall können Sie den zusätzlichen Filter hinzufügen.
Hi.
 

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