| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: HB (Höhenberechnung) (890 mal gelesen)
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 24. Nov. 2014 16:16 <-- editieren / zitieren --> Unities abgeben:
Servus, geht um das LSP HB (Höhenberechnung) von www.cadwerk.com.Nachdem meine Schützlinge immer wieder mal vergessen die Vermessungspunkte zu ändern (Attribut auf Basispunkt) stell sich die Frage ob man die Auswahl was alles verwendet werden darf weiter einschränken kann. Nur Blöcke mit bestimmten Namen oder ob Prüfen ob das Attribut auf 0,0 liegt und mit einer Meldung abbrechen kann? In diesem Teil des Codes wird der Punkt ausgewählt und ob er den Erlaubt ist. ("TEXT" "ATTRIB" "MTEXT" "DTEXT" "RTEXT")
Code:
(defun HB_F_Getpoint (msg / p_tmp z_tmp enx_tmp ent_tmp) (if (not (setq enx_tmp (nentsel msg))) (HB_F_Abort "\nNichts ausgewählt") (progn (setq ent_tmp (entget (car enx_tmp))) (if (member (cdr (assoc 0 ent_tmp)) '("TEXT" "ATTRIB" "MTEXT" "DTEXT" "RTEXT" ) ) ;_ Ende von member (setq p_tmp (cdr (assoc 10 ent_tmp)) z_tmp (distof (cdr (assoc 1 ent_tmp)) 2) ) ;_ Ende von setq (HB_F_Abort "\nGewähltes Element enthält keinen Text" ) ;_ Ende von HB_F_Abort ) ;_ Ende von if ) ;_ Ende von progn ) ;_ Ende von if (setq HB_Container (append HB_Container (list (car enx_tmp)))) (redraw (car enx_tmp) 3) (princ (rtos z_tmp 2 hb_genau)) (HB_F_Koord p_tmp z_tmp) ) ;defun HB_F_Getpoint
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Ist bestimmt nicht das schönste Projekt auf Erden, aber läuft vielleicht.". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 25. Nov. 2014 07:23 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd P
Hallo Bernd, hier schon mal ein Ansatz, wie Du den Blocknamen prüfen kannst, über den GC 330 des Attributes kommst Du an den Block. In meinem Beispiel heißt der erlaubte Block "PUNKT". Code:
(defun c:test ( / OBJ OBJBLOCK) (if (and(setq obj (car (nentsel "\nAttribut picken"))) (=(cdr(assoc 0 (entget obj)))"ATTRIB")) (if (and(setq objBlock(cdr(assoc 330 (entget obj)))) (member(strcase(cdr(assoc 2 (entget objBlock)))) '("PUNKT"))) (alert (strcat "Es wurde ein Attribut vom Block \"" (cdr(assoc 2 (entget objBlock)))"\"" "ausgewählt.")) (alert (strcat "Es wurde ein Attribut vom Block \"" (cdr(assoc 2 (entget objBlock)))"\"" "ausgewählt, dieser ist nicht zulässig."))) (alert "Es wurde kein Attribt gepickt.")) )
------------------ viele Grüße Jörn http://www.bosse-engineering.com Orthogonalvermassung Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 16. Jan. 2015 08:42 <-- editieren / zitieren --> Unities abgeben:
Servus, sorry zwischendurch keine zeit gehabt... danke joern Es wird jetzt auch der Blocknamen geprüft. Code: (defun HB_F_Getpoint (msg / p_tmp z_tmp enx_tmp ent_tmp OBJBLOCK) (if (not (setq enx_tmp (nentsel msg))) (HB_F_Abort "\nNichts ausgewählt") (progn (setq ent_tmp (entget (car enx_tmp))) (setq OBJBLOCK(cdr(assoc 330 (entget (car enx_tmp))))) (if (and (member(strcase(cdr(assoc 2 (entget OBJBLOCK)))) '("KOT_HOEHE_LP" "KOT_HOEHE_LP_VMP")) (member (cdr (assoc 0 ent_tmp)) '("TEXT" "ATTRIB" "MTEXT" "DTEXT" "RTEXT") )) ;_ Ende von member (setq p_tmp (cdr (assoc 10 ent_tmp)) z_tmp (distof (cdr (assoc 1 ent_tmp)) 2) ) ;_ Ende von setq (HB_F_Abort "\nFalscher Block, bitte Block updaten!" ) ;_ Ende von HB_F_Abort ) ;_ Ende von if ) ;_ Ende von progn ) ;_ Ende von if (setq HB_Container (append HB_Container (list (car enx_tmp)))) (redraw (car enx_tmp) 3) (princ (rtos z_tmp 2 hb_genau)) (HB_F_Koord p_tmp z_tmp) ) ;defun HB_F_Getpoint
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Ist bestimmt nicht das schönste Projekt auf Erden, aber läuft vielleicht.". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|