| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: AWS ansetzen (996 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 04. Apr. 2011 08:29 <-- editieren / zitieren --> Unities abgeben:
Hi Kann mir jemand zeigen, wie ich mit Hilfe eines Auswahlsatzes alle plines aufgreife und den block "lange" in die Mitte des plines setze? (defun c:sl ( / OBJ LAYER FL) (if(and (setq OBJ (car (entsel "\nselect pline !\n"))) (setq LAYER (cdr(assoc 8 (entget OBJ)))) (setq FL (rtos(vla-get-length(vlax-ename->vla-object OBJ)) 2 2)) ) (command "_-insert" "lange" (getpoint "\npik point\n") (getvar "DIMSCALE") (getvar "DIMSCALE") 0 LAYER FL) ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 04. Apr. 2011 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 04. Apr. 2011 09:05 <-- editieren / zitieren --> Unities abgeben:
Prima, die Abfrage: (setq OBJ (car AWS))) (setq LAYER (cdr(assoc 8 (entget OBJ)))) (setq FL (rtos(vla-get-length(vlax-ename->vla-object OBJ)) 2 2) geht nicht ohne weiteres einzubauen malformed list on input wie ist das zu verstehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 04. Apr. 2011 09:12 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
spider_dd Mitglied
Beiträge: 1111 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 04. Apr. 2011 09:13 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 04. Apr. 2011 09:23 <-- editieren / zitieren --> Unities abgeben:
als Endresultat sollte die Werte LAYER und FL in den Block eingefügt werden. Kann das so aussehen ? (defun c:sl ( / OBJ LAYER FL) (setq AWS(ssget (list(cons 410(getvar "CTAB"))'(0 . "*POLYLINE")))) (if(and (setq OBJ AWS)) (setq LAYER (cdr(assoc 8 (entget OBJ)))) (setq FL (rtos(vla-get-length(vlax-ename->vla-object OBJ)) 2 2)) ;(if(and(tblobjname "BLOCK" "LANGE"))) ) (progn (setq I -1) (repeat (sslength AWS) (setq OBJ (ssname AWS(setq I (1+ I)))) (command "_divide" OBJ "BLOCK" "LANGE" "_y" 2) ) ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 04. Apr. 2011 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 04. Apr. 2011 09:42 <-- editieren / zitieren --> Unities abgeben:
wie gesagt so funktioniert das nicht - wie bekomme ich aus dem AWS die Infos für LAYER und FL (defun c:sl ( / AWS LAYER FL) (if(and(tblobjname "BLOCK" "LANGE") (setq AWS(ssget (list(cons 410(getvar "CTAB"))'(0 . "*POLYLINE")))) (setq LAYER (cdr(assoc 8 (entget AWS)))) (setq FL (rtos(vla-get-length(vlax-ename->vla-object AWS)) 2 2)) ) (progn (setq I -1) (repeat (sslength AWS) (setq OBJ (ssname AWS(setq I (1+ I)))) (command "_divide" OBJ "BLOCK" "LANGE" "_y" 2) ) ) ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 04. Apr. 2011 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 04. Apr. 2011 10:17 <-- editieren / zitieren --> Unities abgeben:
Ich würde gern die Argumente für LAYER und FL mit insert ausfüllen (command "_divide" OBJ "BLOCK" "LANGE" "_y" 2) setzt den Block "LANGE" auf den Mittelpunkt des plines (command "_-insert" "lange" (getpoint "\npik point\n") (getvar "DIMSCALE") (getvar "DIMSCALE") 0 LAYER FL) möchte ich so umformen, das der Block an den bereits bestimmten Punkt gesetzt wird Ich hoffe das war jetzt nicht zu verwirrend formuliert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 667 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 04. Apr. 2011 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Servus DD:-) ... da schaust alle 5 Wochen mal ins Forum, wer is ganz oben ... :-) Die Punkte aus _divide werden hinten an die AutoCAD Datenbank angehängt.
Vor dem _divide das letzte Objekt in der Datenbank merken (SETQ lo (ENTLAST)) und nach _divide mit (ENTNEXT lo) auf die Punkte zugreifen. Schreib dir mal eine Funktion die den aws in einer Liste ablegt, dann kannst mit FOREACH durch den aws blättern. Wennst nicht weisst wie, schreib mir eine Email, hab' deine Adresse nicht mehr. Ciao Georg ------------------ http://www.xxx-tausend.info Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 04. Apr. 2011 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo, den Mittelpunkt einer Kurve kannst Du mit folgender Funktion ermitteln: Code: (defun voxel-get-mid-point (ele / ) (vl-load-com) (vlax-curve-getPointAtDist ele (/ (vlax-curve-getDistAtPoint ele (vlax-curve-getEndPoint ele)) 2.0)) )
Jetzt brauchst Du nur noch an passender Stelle mitCode: (voxel-get-mid-point obj)
den Mittelpunkt übergeben...Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |