|
Lisp : Papierformate des Druckertreibers abfragen
CADmium am 08.07.2010 um 11:53 Uhr (0)
die ActivXSchnittstelle bietet hierfür (als Suchbegriffe )vla-GetCanonicalMediaNames und vla-GetLocaleMediaName ....per normalo Lisp geht vielleicht so etwas:Code:(defun LAYOUT_GET_DATEN ( / LAYOUTS LAYOUT_EINTRAG LAYOUT_LISTE LAYOUT) (setq LAYOUTS (entget (cdr (assoc 350 ; Layoutsliste auslesen (member (3 . "ACAD_LAYOUT") (entget (namedobjdict)) ) )))) (while ((length LAYOUTS) 0) ; alle definierten Layouts durch ...
|
| In das Form Lisp wechseln |
|
Rund um AutoCAD : Lisp umschreiben!
CADmium am 08.09.2004 um 16:14 Uhr (0)
Auswahl mit der Schnellauswahl "Volumenkörper" und dann "_erase" ? .. oder gehts dir auch um Verschachtelte Blöcke usw.. ? evtl . hilft dir das weiter :Code:(defun DELALL(OBJECTNAME / BLOCK ) (vl-load-com) (if (=(type OBJECTNAME)STR) (progn (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(=(strcase(vla-get-objectname ITEM))(strcase OBJECTNAME)) (vl-catch-all-error-p (vl-catch-all-apply ...
|
| In das Form Rund um AutoCAD wechseln |
|
Lisp : Lisp - Neigung 2D
CADmium am 08.01.2019 um 07:51 Uhr (1)
zum Zeilenweise Nachvollziehen:(defun C:NEIGUNG2D(/ ATT1 ATT2 ATT3 P1 P2 DIFF DIST VALUE) (if(and(setq ATT1(car(nentsel "
Attribut 1 : "))) (setq ATT1(entget ATT1)) (=(cdr(assoc 0 ATT1))"ATTRIB") (setq ATT1 (cdr(assoc 1 ATT1))) (setq ATT1 (atof ATT1)) (setq ATT2(car(nentsel "
Attribut 2 : "))) (setq ATT2(entget ATT2)) (=(cdr(assoc 0 ATT2))"ATTRIB") (setq ATT2 (cdr(assoc 1 ATT2))) (setq ATT2 (atof ATT2)) (setq DIFF (*(- ATT1 ATT2)100.0)) (setq P1(getpoint "
Punkt1 ...
|
| In das Form Lisp wechseln |
|
Inventor : DWG-Export Linientypfaktor krumm.
CADmium am 05.08.2010 um 10:09 Uhr (0)
Zitat:Original erstellt von Alexander_M:Ich meine das bei verdekten Linien der Faktor anders ist als bei Mittellinien und die Schnittlinien, die als ein Block in die DWG kommen, ist der Faktor wieder anders. Im Moment mache ich im ACAD strg+a und dann in den Eigenschaften den Faktor auf 1 stellen, aber die Blöcke bleiben ja davon unberührt.um für alle Objekte ( auch die in Blöcken ) dann den Linientypfaktor auf 1 zu setzten gibts Tools .. einfach mal im "Rund um Autocad" suchen oder noch mal melden .. anb ...
|
| In das Form Inventor wechseln |
|
Rund um Autocad : Block mit Lisp einfügen
CADmium am 07.05.2004 um 21:52 Uhr (0)
Wie es geht - Siehe Hier .. Kann auch automatisiert werden, das die Parameter an die Funktion übergeben werden usw. .. Es tritt dabei aber ein komischer Effekt bei Blockdefinitionen auf, welche auch ATTDEFs enthalten : a) Block normal mit Befehl _Block erzeugt und Referenz mit obiger Funktion erstellt - alles ok b) Block mittels entmake erzeugt.. und GC10 ( 0 0 0 ) und Referenz mit obiger Funktion erstellt - Attributeinfügepunkte verschoben c) Block mittels entmake erzeugt.. und GC10 ( 0 0 0 ) u ...
|
| In das Form Rund um Autocad wechseln |
|
Rund um AutoCAD : Buttonmakro schützen - geht das?
CADmium am 03.06.2008 um 15:12 Uhr (0)
Zitat:Original erstellt von CADheini:hallo,ich habe eben einige "aufwendige" makros, war die Makrolänge nicht begrenzt .. 255 Zeichen oder so? -.. (ich teste das jetzt nicht) ... was ist daran soo aufwendig? Egal ... hab gerade erfahren, dass auch längeres akzeptiert wird ... ich finds dann irgendwie aber unübersichtlich. Zitat:Original erstellt von CADheini:...geht es nicht, das ding irgendwie als .lsp abzuspeichern und über einen "load befehl" auszuführen?die kannst das, was dein Makro macht, sich ...
|
| In das Form Rund um AutoCAD wechseln |
|
Rund um AutoCAD : Objektfang bei Konstruktionslinien
CADmium am 14.09.2007 um 10:36 Uhr (0)
ich denke mal, ne Objektfangfilter, der Konstruktionslinien ausschließt wirst du nicht haben... dann kann es sein, das die Konstruktionslinien nicht in einer Ebene liegen und sich somit nicht schneiden, und so kein Schnittpunkt gefangen werden kann. Um die Z-Werte auf 0 zulegen hilft folgendes kleines Lisp:Code:(defun C:KLINIE-0(/ AWS INDEX OBJDATA GC10 GC11) (if(setq AWS(ssget "_x" (list (0 . "XLINE")(cons 410 (getvar"CTAB"))))) (progn (setq INDEX -1) (repeat(sslength AWS) (setq OBJDA ...
|
| In das Form Rund um AutoCAD wechseln |
|
AutoLisp : Sofortiger Abbruch einer Funktion
CADmium am 24.01.2004 um 10:40 Uhr (0)
Die von Holger vorgeschlagene Strategie ist auf alle Fälle die saubere und elegantere Lösung - nicht nur für Lisp. Egal, ob die Funktion nun quit, exit , goto (in anderen Programmiersprachen) heißen, es besteht immer die Gefahr, das programminterne Umstellungen von z.B. globalen (System-) Variablen oder offene Dateien nicht ordnungsgemäß zurückgesetzt werden. Ich weiß - dazu gibt es zur Not immer noch einen entsprechenden Errorhandler. Doch dieser sollte eigentlich nur zum Einsatz kommen, wenn Nutzerspez ...
|
| In das Form AutoLisp wechseln |
|
Rund um Autocad : Layer über Datei erzeugen
CADmium am 07.07.2004 um 08:22 Uhr (0)
mal einen anderen Ansatz : Siehe Hier und speziell für Layer : (defun LAYER-export(DATEINAME / LAYER LAYDATA LISTE DATEI) (While (setq LAYER (tblnext LAYER (null LAYER))) (setq LAYDATA (vl-remove-if (lambda (L)(member(car L) (-1 330 -2 5 390))) (entget(tblobjname LAYER (cdr(assoc 2 LAYER))) ( * )) ) ) (setq LISTE (cons LAYDATA LISTE)) ) (if(setq DATEI(open DATEINAME w )) (progn (for ...
|
| In das Form Rund um Autocad wechseln |
|
Lisp : Xdata GC 1011 und VLA-setXdata
CADmium am 22.05.2012 um 11:04 Uhr (0)
ach so ..der appli-Name .. den übergeb ich extra .... haste vielleicht (regapp "hallo")vergessen ?Die Funktionen sind Bestandteil einer Bibo, die außeinanderzuklamüsern würde hier zu weit führen, ..die Bibo zu posten aber auch.Aber ein GC-Lisp daraus kann ich dir zur Verfügung stellen:(defun DT:XDATA-PUT-GC (OBJ NEWXDATA / XDATA DATA) (if(and(=(type OBJ)ENAME) (=(type NEWXDATA)LIST) (=(type(car NEWXDATA))STR) (vl-every (lambda(X) (and (listp X) ( ...
|
| In das Form Lisp wechseln |
|
Rund um AutoCAD : Blöcke um Einfügepunkt spiegeln (Lisp oder Makro)
CADmium am 07.07.2010 um 10:18 Uhr (0)
zu 1.)(entmod(subst (cons 42(*(cdr gc42)-1))gc42 DATA)) das sind einfach die Sklalierfaktoren der Blockreferenz ... die mal -1 multipliziert ist eine Spiegelung.... ein bißchen Beschäftigung mit der Materie würde nicht schaden!zu.2 ) das ist aufwendiger ..Ermittlung aller Blocknamen in der Auswahl und dann übergabe an Attsync...könnte dann so aussehen:(defun c:blkmirror ( / ALISTE tfac N BLKLIST) (defun bau_elemli (asatz / n elemli) (if(=(type ASATZ)PICKSET) (progn (setq n -1) (repea ...
|
| In das Form Rund um AutoCAD wechseln |
|
AutoCAD Mechanical : Blockbeschreibung ändern
CADmium am 18.05.2004 um 09:36 Uhr (0)
und noch eine Meldung der Lisp-Fraktion ;D für evtl Automatisierungszwecke usw, (defun BLOCK-SET-DISCRIPTION ( NAME DISCRIPTION / OBJEKT OBJEKTDATEN) (if (and (=(type NAME) STR)(setq OBJEKT (tblobjname "BLOCK" NAME))) (progn (setq OBJEKTDATEN(entget OBJEKT )) (if(or(and(=(type DISCRIPTION) STR)( (strlen DISCRIPTION)0))(setq DISCRIPTION "")) (if (assoc 4 OBJEKTDATEN) (setq OBJEKTDATEN(subst(cons 4 DISCRIPTION)(assoc 4 OBJEKTDATEN)OBJEKTDATEN)) (setq ...
|
| In das Form AutoCAD Mechanical wechseln |
|
Lisp : autoload ohne autoload
CADmium am 21.09.2009 um 12:44 Uhr (0)
Zitat:Original erstellt von archtools: Jeder, der mit CAD-Programmierung sein Geld verdient, hat sich im Laufe der Jahre selber so eine Programmbibliothek zusammen gebastelt, und die stellt zumindest in meinem Fall den allergrößten Teil meines Kapitals dar. Dank der umfangreichen Bibliothek brauche ich zur Erstellung eines Programms höchstens 20% der Zeit selbst eines in Lisp äußerst kompetenten Anfängers. D.h. ich verdiene viel mehr und kann, wenn ich unbedingt scharf auf einen Auftrag bin, im Preis viel ...
|
| In das Form Lisp wechseln |