| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Hatches von User-defined auf Custom ändern (2537 mal gelesen)
|
silvatika Mitglied
Beiträge: 7 Registriert: 07.08.2008 AutoCAD Map 3D 2008
|
erstellt am: 30. Jan. 2009 15:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich hatte bereits vor ca. einem halben Jahr eine Anfrage in der gleichen Angelegenheit im Allgemeinen AUTOCAD-Forum gestellt, bin aber noch nicht endgültig zu einer Lösung gekommen. Hoffe nun, man kann es irgendwie über LISP oder vielleicht auch VBA lösen. Hier die Problemstellung: Ich habe eine SICAD-Datei duch den FME-Konverter laufen lassen und eine DWG-Datei erhalten. Allerdings werden die Hatches nicht richtig konvertiert. Ich habe zwar für verschiedene Hatchtypen (z.B. ZEBRA = Zebrastreifen oder SPERRFL für Sperrflächen) eigene *.pat-Dateien erstellt, kann FME bzw. AutoCAD jedoch nicht dazu bringen, diese auch richtig anzuzeigen. Die Information, dass die Fläche z.B. ein "ZEBRA" ist, ist jedoch vorhanden (=Patternname) und wird bei den Properties auch so angezeigt – jedoch ist die Fläche "User-defined" – also nur mit der Standardlinie gestrichelt dargestellt. Eigentlich müsste Sie aber "Custom" sein. Den FME-Konverter auf "Custom" umzustellen hat leider nur zur Folge, dass alle Flächen als SOLID-Flächen konvertiert werden, ohne einen Drehwinkel also. Daher dann doch lieber auf "User-defined", da dort der Drehwinkel mitkommt (was für die Ausrichtung von Zebrastreifen- und Sperrflächenschraffuren wichtig ist). Meine derzeitige Lösung (händisch!!!) sieht dann so aus: Nun müsste ich in meiner Zeichnung alle Flächen nacheinander anklicken (habe unterschiedliche Typen (s.o.) mit unterschiedlichen Schraffurmustern), rechte Maustaste => "Hatchedit" auswählen und dann nur noch Enter drücken, da sonst alle Voreinstellungen bereits stimmen und meine Zeichnung wäre richtig. Ich hatte es bereits mit Hilfe eines Kollegen mit VBA versucht: Schraffuren werden gefunden, können in einen Array geschrieben werden, Anzahl kann ausgegeben werden, sie können sogar gelöscht werden. Nur bekommen wir die Schraffuren nicht von "User-Defined" auf "Custom" umgestellt. Problem hier scheint zu sein, dass wir einzelne "Hatch-Elemente" nicht irgendwie über einen SELECT-Befehl ansprechen bzw. editieren (bzw. updaten) können. Wäre für einen Lösungsvorschlag sehr dankbar - egal ob mit LISP oder VBA. Aber bitte recht einfach - wenns geht.
Grüsse aus dem sonnig kalten Luxembourg und allen zusammen schon mal ein schönes sowie erholsames Wochenende.
Gruss Silvatika
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 30. Jan. 2009 16:15 <-- editieren / zitieren -->
Hi, passt vielleicht nicht zu LISP, aber könnte die Situation nicht mit Map-Abfragen lösbar sein? Wenn Du die SICAD-Daten in eine DWG-Datei konvertierst, hast Du da noch die Grenzen der Schraffur und in der Topologie die Information von Flächentyp (Schutzweg, Sperrfläche, ...) sowie die Drehrichtung? Wenn das so ist, dann könntest Du mittels Map-Abfrage auf die Topolgie hingreifen und die Schraffur über Eigenschaftsänderungen von Map zeichnen lassen. Alles schwer ohne Daten zu sehen, aber vielleicht ein Denkanstoss. - alfred - ------------------ www.hollaus.at |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 30. Jan. 2009 19:32 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
Hi, wenn ich es richtig verstanden habe, willst du alle Objekte Typ HATCH einmal durch hatchedit laufen lassen ohne etwas zu ändern ?! (defun C:hatched (/ n ss) (setq ss (ssget "X" (list '(0 . "HATCH"))) n 0 ) (repeat (sslength ss) (command "_hatchedit" (ssname ss n) "" "" "" "") (princ (strcat "\nHatch " (itoa n))) (setq n (1+ n)) ) (princ) ) Lad doch mal ne Datei mit IST und SOLL hoch. mfg heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 30. Jan. 2009 20:10 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|
silvatika Mitglied
Beiträge: 7 Registriert: 07.08.2008 AutoCAD Map 3D 2008
|
erstellt am: 02. Feb. 2009 07:36 <-- editieren / zitieren --> Unities abgeben:
Hi, das mit dem Dateianhängen ist eine gute Idee. Ich hoffe, es klappt. Mit FME haben wir schon Stunden verbracht, damit die Hatches richtig konvertiert werden. Aber leider ohne Erfolg. Wir haben auch schon versucht, bereits vorhandene Flächen von AutoCAD (z.B. SWAMP) mit einer ZEBRA-Darstellung zu verändernn. Aber auch das klappte nicht. Kann aber auch sein, dass es irgendwie mit AutoCAD zusammenhängt (die *.pat-Dateien liegen im Support-Ordner). Auf jeden Fall kommt die Information, dass es sich bei einer Fläche um ein ZEBRA handelt mit. Den Lösungsansatz mit dem o.g. LISP werde ich mal ausprobieren. Aber wie verhält es sich, wenn ich Flächen unterschiedlichen Typs habe??? Es sind z.B. ZEBRA, SPERRFL und andere Flächenfüllungen in meinen Zeichnungen enthalten. Danke im Voraus schon für eure Hilfe Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Feb. 2009 09:30 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|
silvatika Mitglied
Beiträge: 7 Registriert: 07.08.2008 AutoCAD Map 3D 2008
|
erstellt am: 02. Feb. 2009 09:37 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Feb. 2009 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
Hallo Silvatika, unter ACAD 2008 hat es mit folgendem LISP funktioniert, kannst Du Dir dann ja noch ein bißchen anpassen (hier werden erstmal nur den ZEBRA-Schraffuren "benutzerdefiniert zugewiesen"). Code:
(defun c:test ( / aws n) (if (setq aws (ssget "_X" (list (cons 0 "HATCH") (cons 2 "ZEBRA")))) (progn (setq n 0) (repeat (sslength aws) (command "-schraffedit" (list (ssname aws n) (cdr (assoc 10 (vl-remove-if '(lambda (A) (and (= (car A) 10) (= (distance (cdr A) '(0.0 0.0 0.0)) 0.0))) (entget (ssname aws n)) ) ) ) ) "" "" "" "" ) (setq n (+ n 1)) ) ) ) )
PS: sehe gerade, eigentlich ist es genau dasselbe, was Dorfy oben bereits gepostet hat, naja, dann hast Du was zum probieren. ------------------ viele Grüße Jörn http://www.bosse-engineering.com [Diese Nachricht wurde von joern bosse am 02. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silvatika Mitglied
Beiträge: 7 Registriert: 07.08.2008 AutoCAD Map 3D 2008
|
erstellt am: 02. Feb. 2009 10:47 <-- editieren / zitieren --> Unities abgeben:
Hi, jaaaa, supi.... Das ist es!!!! Vielen tausend Dank. Jetzt muss ich nur noch die SPERRFL und die LADEFL anpassen. Tschuldigung: aber ich als absoluter Nicht-Lisp-Kundiger (Java geht gerade noch so....) würde mir jetzt die Datei noch zweimal kopieren und die Namen entsprechend austauschen - dann hätte ich meine drei Fälle abgearbeitet. Aber das geht doch sicher eleganter?? Nochmals vielen herzlichen Dank. Gruss Natalie
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Feb. 2009 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 02. Feb. 2009 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|
silvatika Mitglied
Beiträge: 7 Registriert: 07.08.2008 AutoCAD Map 3D 2008
|
erstellt am: 02. Feb. 2009 11:12 <-- editieren / zitieren --> Unities abgeben:
Hi, jippiiii. Es funktioniert!!!! So. Das i-Tüpfelchen auf der ganzen Sache wäre jetzt noch, dass wir die LISP-Datei vielleicht noch irgendwie in unseren FME-Konverter reinbekommen. Bei VBA weiss ich, dass das geht. Bei Lisp muss ich dann mal nachfragen (Die eigentliche Konvertierung mit FME mach ich halt nicht selbst, sondern die wird von einer anderen Dienststelle gemacht). KLASSE - IHR SEID SUPER. Danke Danke Danke Natalie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Cheenook Mitglied Angestellte
Beiträge: 2 Registriert: 19.06.2013
|
erstellt am: 19. Jun. 2013 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
Hallo, leider musste ich mich neu anmelden, da es irgendwie mit dem Passwort nicht mehr funktioniert hat. Ich bin "Silvatika". Nachdem ihr mir so hervorragend bei meinem Problem mit der Umsetzung der Flächen geholfen habt stehe ich nun vor dem Problem, dass die Lisp-Datei mit AutoCAD Map3D 2011 nicht mehr funktioniert. Es wird lediglich die Meldung "nil" zurückgegeben. Irgendwer eine Idee, was das Programm hier zusätzlich noch erwartet? Gruss silvatika
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 19. Jun. 2013 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|
Cheenook Mitglied Angestellte
Beiträge: 2 Registriert: 19.06.2013
|
erstellt am: 19. Jun. 2013 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
Hi, danke für die schnelle Antwort. Ich habe es auch bei einer ACAD Version 2013 (jeweils immer die MAP-Version) ausprobiert - geht auch leider nicht. Folgende Vorgehensweise wende ich an: die *.pat-Dateien habe ich in das Support-Verzeichnis auf C:\user\... kopiert. Dann meine konvertierte DWG-Datei aufgerufen und Load => Application ausgeführt. Meine Lisp-Datei habe ich geladen (erfolgreich bestätigt) und dann gebe ich zum Starten der Lisp-Datei in das ACAD-Eingabefenster "tauschen" ein. Und dann bekomme ich eben ein "nil" zurück und an meinen Schraffuren ändert sich rein gar nichts. Ich habe auch bei den Optionen geschaut, dass ACAD in dem richtigen Verzeichnis nach den *Pat-Dateien schaut. Ist meine Vorgehensweise richtig? Viele Grüsse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 19. Jun. 2013 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für silvatika
|