oran
Membres-
Compteur de contenus
249 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par oran
-
Bonjour à tous, Je cherche tout simplement à connaître la longueur d'un(e) spline. Comment fait-on ? :casstet: :P :P Merci à vous, Oran ..et pourquoi pas 3 "m" dans mon titre pdt que j'y suis..!!! :P :P [Edité le 20/9/2007 par oran]
-
Bonjour, ......je vais me pencher sur ta solution Patrick. Encore merci à vous deux.... ;)
-
merci... ...mais je me retrouve tout de même avec la totalité de mes attributs sur mon bloc. Le but de ma recherche était d'utiliser le lisp CAT de Patrick 35 qui permet de copier les attributs d'un bloc vers d'autres blocs, ainsi je ne copiai que ceux que je désirai... Oran
-
Bonjour, Peut-on, d'une manière ou d'une autre, scinder les attributs d'un bloc en 2 parties....??? Je m'explique: - pour l'instant mon bloc est composé d'une dizaine d'attributs que je renseigne lors de l'insertion de celui-ci. Maintenant, pour ce même bloc, pourrait-on dans un premier temps renseigner 5 attributs et dans un second temps renseigner les 5 suivants (faire 2 "sous ensembles" d'attributs par exemple). Merci, ;) Oran
-
Bonjour, ... quel genre d'exemple exactement...?? ;)
-
Bonjour, ...PSLTSCALE ==>0 pour avoir le même affichage entre l'EO et l'EP... ;) Oran ...oups je n'ai pas lu ton message à fond.....excuse.. :P :P [Edité le 3/8/2007 par oran]
-
Bonjour, J'ai un petit souci, pas bien grave d'ailleurs, avec [surligneur]LG.lsp[/surligneur] ==> bug ou pb perso ? (Autocad version 2005). - je colle ma légende Excel (Legendes_electriques.xls) et immédiatement après cette manip. si j'essaie d'ouvrir un nouveau document Excel (toto.xls) Autocad se bloque. Je suis obligé de faire un Ctrl+Alt+Supp. pour aller fermer (Legendes_electriques.xls) qui s'est réactivée lorsque j'ai appelé Toto.xls ..!!!! :P :cool: Bizarre....... Oran ;)
-
Bonjour, Tu peux mettre ton cadre sur le calque [surligneur]Defpoints[/surligneur]... ...sinon tu te crées un calque spécial "cadres" et dans le gestionnaire de calques tu coches la petite imprimante correspondant à ce calque.. Oran ;) [Edité le 30/7/2007 par oran]
-
Bonjour, Si cela peut te servir en attendant mieux..... [surligneur]DECBLOC.lsp[/surligneur] Décompose un bloc composé d'attributs et récupère toutes les valeurs des attributs sous la forme d'objet texte ; DECBLOC.LSP ; =============================== ; recuperation des valeurs des attributs ; d'un bloc en le décomposant ; Remplace attribut par texte ; ; Dominique VAQUAND ; le 28.05.96 ; =============================== (defun c:DECBLOC () ; mise en mémoire du plan courant (setvar "cmdecho" 0) (setq derplan (getvar "clayer")) ; sélection du bloc (setq ent_bloc (entsel "\nSélectionnez le bloc: ")) (setq ent_bloc (car ent_bloc)) (if (= (cdr (assoc 0 (entget ent_bloc))) "INSERT") (progn (if (= (cdr (assoc 66 (entget ent_bloc))) 1) (progn (setq ent_att (entnext ent_bloc)) ; récupération des informations de l'attribut (while (/= (cdr (assoc 0 (entget ent_att))) "SEQEND") ; nom étiquette (setq att_etiq (cdr (assoc 2 (entget ent_att)))) ; valeur du contenu de l'attribut (setq att_val (cdr (assoc 1 (entget ent_att)))) ; justification du texte (setq flag72 (cdr (assoc 72 (entget ent_att)))) ; style texte (setq att_style (cdr (assoc 7 (entget ent_att)))) ; position x10 (setq att_x10 (cdr (assoc 10 (entget ent_att)))) ; position x11 (setq att_x11 (cdr (assoc 11 (entget ent_att)))) ;hauteur texte (setq att_htxt (cdr (assoc 40 (entget ent_att)))) ;nom du plan (setq att_plan (cdr (assoc 8 (entget ent_att)))) (command "_layer" "_m" att_plan "") (if (= (cdr (assoc 70 (entget ent_att))) 0) (progn (setq h_style (cdr (assoc 40 (tblsearch "style" att_style)))) (cond ((= flag72 0) (if (= h_style 0) (command "texte" "st" att_style att_x10 att_htxt 0 att_val) (command "texte" "st" att_style att_x10 0 att_val) ) ) ((= flag72 1) (if (= h_style 0) (command "texte" "st" att_style "c" att_x11 att_htxt 0 att_val) (command "texte" "st" att_style "c" att_x11 0 att_val) ) ) ((= flag72 2) (if (= h_style 0) (command "texte" "st" att_style "d" att_x11 att_htxt 0 att_val) (command "texte" "st" att_style "d" att_x11 0 att_val) ) ) ((= flag72 3) (if (= h_style 0) (command "texte" "st" att_style "A" att_x10 att_x11 att_htxt att_val) (command "texte" "st" att_style "A" att_x10 att_x11 att_val) ) ) ((= flag72 4) (if (= h_style 0) (command "texte" "st" att_style "M" att_x11 att_htxt 0 att_val) (command "texte" "st" att_style "M" att_x11 0 att_val) ) ) ((= flag72 5) (if (= h_style 0) (command "texte" "st" att_style "F" att_x10 att_x11 att_htxt att_val) (command "texte" "st" att_style "F" att_x10 att_x11 att_val) ) ) );end cond );end progn );end if (setq ent_att (entnext ent_att)) );end while ; on décompose le bloc (command "decompos" ent_bloc ) ; on efface tous les attributs (command "effacer" (ssget "x" (list (cons 0 "ATTDEF"))) "") (command "redess") ; on se replace sur le plan courant (command "_layer" "_m" derplan "") );progn (alert "Ce bloc ne contient pas d'attribut. Pour le décomposer\nutilisez simplement la commande DECOMPOS.") );if );progn (alert "Ce n'est pas un objet bloc.") );if (princ) );defun ; =================== END DEFUN (princ "\n==> DECBLOC") (princ) Oran
-
:P ...ho! la! la!...j'ai honte....!!! Merci ;) et bon week-end Oran
-
.... ...cela m'interresse, peux-tu développer...? ;) Merci, Oran Je suppose que tu vas transformer un point en bloc, mais ce qui m'interresse exactement c'est comment feras-tu pour remplacer tous les autres points par ce bloc que tu auras créé... ;) [Edité le 26/7/2007 par oran]
-
Routines pour TEXT/MTEXT - Inférieur/Supérieur
oran a répondu à un(e) sujet de lecrabe dans Routines LISP
OK ça fonctionne à merveille....chapeau bas, c'est clair, c'est net et c'est rapide.... ;) Je vous envie de pouvoir faire ce genre de programmation. Comment apprendre lorsque l'on est GRAND débutant ??? Y a t-il des ouvrages préconisés, des sites (français si possible...et oui..!!) faut-il faire un stage....etc ?? Oran ;) -
Routines pour TEXT/MTEXT - Inférieur/Supérieur
oran a répondu à un(e) sujet de lecrabe dans Routines LISP
Bonjour, Je confirme c'est nickel sur la version 2005 et de surcroît très interressant et tès utile. Une toute petite question par contre, peut-on faire en sorte qu'il ne prenne pas en compte une ou plusieurs valeurs entre le mini et le maxi choisis préalablement...? EXEMPLE: valeur mini ==> 1 valeur maxi ==> 10 .....mais je ne veux pas qu'il y ait le 3 et le 7 (ou plus d'ailleurs) pris en compte. Oran ;) ;) -
Bonjour Patrick, Je voudrai émettre un petit souhait au sujet de RBL.lsp, ne pourrait-on pas avoir le choix sur la nouvelle position du point d'insertion du bloc. Soit le centre comme c'est le cas ou un autre point suivant nos besoins.... ;) ...it's possible...???? ;) Merci, Oran
-
Bonjour, La solution qui me vient à l'esprit est à 2 conditions... :casstet: :casstet: 1) - il faut que tes objets soient des blocs. :cool: 2) - peut-on charger des lisp sur la version LT2007 ?? :cool: ....alors si les 2 conditions sont remplies tu trouveras ton bonheur avec RBLOC.lsp de Patrick. Oran :)
-
http://img514.imageshack.us/img514/1491/86796613ef8.jpg Shot at 2007-07-24 .....il est préférable que tu laisse ton image.jpg avec ton dessin.dwg dans le même Répertoire 1 ou ensuite soit dans un sous-répertoire (Répertoire 2 ), ou encore un sou-sous-répertoire Répertoire 3 ...etc. Oran .... :cool: j'espère que tu ne m'en voudras pas Thierry, je n'ai fait qu'imager ta réponse ;) [Edité le 24/7/2007 par oran] [Edité le 24/7/2007 par oran]
-
http://img96.imageshack.us/img96/2388/205sp6.jpg Shot at 2007-07-24 ....je n'ai fait que reprendre la ligne (maintenant colorée en jaune) du lisp ci-joint plus haut pour te montrer à quoi correspondait la valeur 205 dans mon cas personnel. ....tu as tout compris, effectivement si tes folios sont tous décalés de la même valeur, comme je le montre avec ma côte de 205, tu n'as plus qu'a faire ta 1ère présentation en centrant ton folio et ensuite tu lances ton lisp avec x copies....et voili ...voilà ;) ...oui et c'est bien dommage, n'y connaissant absolument rien en lisp je reste donc impuissant là devant... :casstet: [surligneur]...Mais peut-être qu'une âme charitable pourrait nous donner un coup de main à ce sujet en nous corrigeant le lisp de façon que chaque entité intégrée soit décalée de xxx unités et en nous montrant sur quelle ligne agir suivant nos besoins....!!![/surligneur] ;) :) :D Voici donc le lisp en question (je pense que son auteur ne nous en voudra pas de cette modification souhaitée...!!) MOVE.lsp ((lambda ( / prefix pt_ins last_pt obj ll ur lg) (setvar "cmdecho" 0) (setvar "attreq" 0) (vl-load-com) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" "" "dwg" 16)) "\\")) (setq pt_ins (getpoint "\nPoint d'insertion pour le 1er Bloc? <0.0,0.0,0.0>: ")) (if (null pt_ins) (setq pt_ins '(0.0 0.0 0.0))) (setq last_pt nil) (foreach dwg (vl-directory-files prefix "*.dwg" 1) (command "_.-insert" (strcat "\"" prefix dwg "\"") "_none" pt_ins "1.0" "1.0" "0.0") (setq Obj (vlax-ename->vla-object (entlast))) (vla-GetBoundingBox Obj 'll 'ur) (setq ll (safearray-value ll)) (setq ur (safearray-value ur)) (if last_pt (progn (command "_.move" (entlast) "" "_none" (list (car ll) (cadr pt_ins) (caddr pt_ins)) "_none" pt_ins) (setq lg (distance (list (car ll) (cadr pt_ins) (caddr pt_ins)) pt_ins)) ) (setq lg 0.0) ) (setq pt_ins (list (+ lg (car ur)) (cadr pt_ins) (caddr pt_ins))) (setq last_pt pt_ins) ) (command "_.zoom" "_all") (command "_.zoom" "_extents") (setvar "attreq" 1) (setvar "cmdecho" 1) (prin1) )) ....pour les lisp, tu peux déjà aller voir là , sinon le reste je les glane au gré des lectures des différents posts. Oran [Edité le 24/7/2007 par oran]
-
.....mais oui bien sûr Patrick.. ;) je m'étais interréssé à ce sujet d'ailleurs suis-je bêêêête... :cool: :P :casstet:
-
..re.. pour ce qui est des présentations voici [surligneur]Clayout.lsp[/surligneur] (tjs pas de moi......je n'y connais rien en lisp) (defun llayouts (/ acadobject ActDoc LAYOUTS LLAY n) (setq acadObject (vlax-get-acad-object)) (setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object))) (setq LAYOUTS (vla-get-Layouts ActDoc)) (setq LLAY nil) (vlax-for n LAYOUTS (setq LLAY (cons (vla-get-name n) LLAY)) ) LLAY ) (defun NewNameLayout (OLDLAY NEWLAY) (setq RES nil) (while NEWLAY (setq ELEM (car NEWLAY)) (setq NEWLAY (cdr NEWLAY)) (if (not (member ELEM OLDLAY)) (setq RES ELEM) ) ) RES ) (defun c:clayout () (vl-load-com) (setq NBPAGE (getint "\nNombre de copies : ")) (repeat NBPAGE (setq OLDLLAY (llayouts)) (command "_layout" "_c" "" "") (setq NEWLLAY (llayouts)) (setq NNAME (NewNameLayout OLDLLAY NEWLLAY)) (command "_layout" "_s" NNAME) (command "_MSPACE") [surligneur](command "_-pan" "_non" '(0 0) "_non" '(0 205))[/surligneur] (command "_PSPACE") ) (princ) ) Il suffit de faire la présentation du 1er folio à l'extème gauche et ensuite de lancer ce lsp. Les autres présentations se font automatiquement en allant vers la droite (il suffit juste d'aller dans le lisp pour lui donner la valeur du décalage entre 2 folios dans ton espace objet en l'occurence ici 205..... (command "_-pan" "_non" '(0 0) "_non" '(0 205)) [surligneur]Clayoutt.lsp[/surligneur] te décale les présentation vers le bas. (defun llayouts (/ acadobject ActDoc LAYOUTS LLAY n) (setq acadObject (vlax-get-acad-object)) (setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object))) (setq LAYOUTS (vla-get-Layouts ActDoc)) (setq LLAY nil) (vlax-for n LAYOUTS (setq LLAY (cons (vla-get-name n) LLAY)) ) LLAY ) (defun NewNameLayout (OLDLAY NEWLAY) (setq RES nil) (while NEWLAY (setq ELEM (car NEWLAY)) (setq NEWLAY (cdr NEWLAY)) (if (not (member ELEM OLDLAY)) (setq RES ELEM) ) ) RES ) (defun c:clayoutt () (vl-load-com) (setq NBPAGE (getint "\nNombre de copies : ")) (repeat NBPAGE (setq OLDLLAY (llayouts)) (command "_layout" "_c" "" "") (setq NEWLLAY (llayouts)) (setq NNAME (NewNameLayout OLDLLAY NEWLLAY)) (command "_layout" "_s" NNAME) (command "_MSPACE") (command "_-pan" "_non" '(0 0) "_non" '(-300 0)) (command "_PSPACE") ) (princ) ) .....si cela peut t'aider.... ;) [Edité le 24/7/2007 par oran]
-
bonjour, Ce lisp (je n'en suis pas l'auteur) te permettra déjà d'ouvrir la totalité de tes folios sur une nouvellle feuille (dans la mesure où tes fichiers sont tous dans un seul et même répertoire...!!!) [surligneur]Move.lsp[/surligneur] ((lambda ( / prefix pt_ins last_pt obj ll ur lg) (setvar "cmdecho" 0) (setvar "attreq" 0) (vl-load-com) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" "" "dwg" 16)) "\\")) (setq pt_ins (getpoint "\nPoint d'insertion pour le 1er Bloc? <0.0,0.0,0.0>: ")) (if (null pt_ins) (setq pt_ins '(0.0 0.0 0.0))) (setq last_pt nil) (foreach dwg (vl-directory-files prefix "*.dwg" 1) (command "_.-insert" (strcat "\"" prefix dwg "\"") "_none" pt_ins "1.0" "1.0" "0.0") (setq Obj (vlax-ename->vla-object (entlast))) (vla-GetBoundingBox Obj 'll 'ur) (setq ll (safearray-value ll)) (setq ur (safearray-value ur)) (if last_pt (progn (command "_.move" (entlast) "" "_none" (list (car ll) (cadr pt_ins) (caddr pt_ins)) "_none" pt_ins) (setq lg (distance (list (car ll) (cadr pt_ins) (caddr pt_ins)) pt_ins)) ) (setq lg 0.0) ) (setq pt_ins (list (+ lg (car ur)) (cadr pt_ins) (caddr pt_ins))) (setq last_pt pt_ins) ) (command "_.zoom" "_all") (command "_.zoom" "_extents") (setvar "attreq" 1) (setvar "cmdecho" 1) (prin1) ))
-
Bonjour, Je recherche un lisp tout simple qui me permettrait de changer mon style de texte, en l'occurence UNIVERS, en style ARIAL. Ce lisp existe sur le site mais je ne le retrouve pas.... :cool: Si qq'un a ça dans ses tablettes, merci d'avance.. ;) Oran
-
...hé bien ça m'a l'air pas mal tout ça... ;). Pour l'instant tout est OK, je me suis même offert un plan de 2.20m de long :P pour voir comment il réagissait en PDF avec les grandes longueurs, aucun souci à ce niveau ça passe également.. :o Merci à toi, Oran
-
...je ne sais pas mais je pense que tu as déjà dû faire une recherche sur le net..! ;)
-
Recréer le contour d\'une zone hachurée
oran a répondu à un(e) sujet de alainterieur dans AutoCAD 2000 à 2002
..qq'un a fait un topo étape par étape sur le chargement des lisp mais je ne retrouve plus... :casstet: Je l'ai retrouvé là [Edité le 3/7/2007 par oran] -
Recréer le contour d\'une zone hachurée
oran a répondu à un(e) sujet de alainterieur dans AutoCAD 2000 à 2002
bonjour, essaie ce lisp, qui n'est pas de moi... HATCHB.lsp ==> Recrée le contour d'un hachurage ;;; HATCHB.LSP ;;; Recreates hatch boundary by selecting a hatch ;;; Boundary is created in current layer/color/linetype in WCS ;;; By Jimmy B ;;; e-mail: cadman@yesbox.net ;;; 2000-02-12 - First release ;;; 2000-03-27 - Counterclockwise arc's and ellipse's fixed ;;; Objects created joined to lwpolyline if possible ;;; Error-handling, undo of command ;;; Can handle PLINETYPE = 0,1,2 ;;; 2000-03-30 - Integrating hatchb and hatchb14 ;;; Selection of many hatches ;;; Splines supported if closed. ;;; Tested on AutoCAD 2000 ;;; should be working on older versions too. (defun c:hb () (c:hatchb)) ; this line can be commented out if there is an existing command called hb (defun c:hatchb (/ es blay ed1 ed2 loops1 bptf part et noe plist ic bul nr ang1 ang2 obj *ModelSpace* *PaperSpace* space cw errexit undox olderr oldcmdecho ss1 lastent en1 en2 ss lwp list->variantArray 3dPoint->2dPoint A2k ent i ss2 knot-list controlpoint-list kn cn pos ) (setq A2k (wcmatch (getvar "ACADVER") "15*")) (if A2k (defun list->variantArray (ptsList / arraySpace sArray) (setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length ptsList) 1)) ) ) (setq sArray (vlax-safearray-fill arraySpace ptsList)) (vlax-make-variant sArray) ) ) (if A2k (defun 3dPoint->2dPoint (3dpt) (list (float (car 3dpt)) (float (cadr 3dpt))) ) ) (defun errexit (s) (princ "\nError: ") (princ s) (restore) ) (defun undox () (command "._ucs" "_p") (command "._undo" "_E") (setvar "cmdecho" oldcmdecho) (setq *error* olderr) (princ) ) (setq olderr *error* restore undox *error* errexit ) (setq oldcmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (command "._UNDO" "_BE") (if A2k (progn (vl-load-com) (setq *ModelSpace* (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)) ) *PaperSpace* (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)) ) )) ) (if (/= (setq ss2 (ssget '((0 . "HATCH")))) nil) (progn (setq i 0) (while (setq ent (ssname ss2 i)) (setq ed1 (entget ent)) (if (not (equal (assoc 210 ed1) '(210 0.0 0.0 1.0))) (princ "\nHatch not in WCS!")) (command "._ucs" "_w") (setq loops1 (cdr (assoc 91 ed1))) ; number of boundary paths (loops) (if (and A2k (= (strcase (cdr (assoc 410 ed1))) "MODEL")) (setq space *ModelSpace*) (setq space *PaperSpace*) ) (repeat loops1 (setq ed1 (member (assoc 92 ed1) ed1)) (setq bptf (cdr (car ed1))) ; boundary path type flag (setq ic (cdr (assoc 73 ed1))) ; is closed (setq noe (cdr (assoc 93 ed1))) ; number of edges (setq ed1 (member (assoc 72 ed1) ed1)) (setq bul (cdr (car ed1))) ; bulge (setq plist nil) (setq blist nil) (cond ((> (boole 1 bptf 2) 0) ; polyline (repeat noe (setq ed1 (member (assoc 10 (cdr ed1)) ed1)) (setq plist (append plist (list (cdr (assoc 10 ed1))))) (setq blist (append blist (if (> bul 0) (list (cdr (assoc 42 ed1))) nil ) ) ) ) (if A2k (progn (setq polypoints (apply 'append (mapcar '3dPoint->2dPoint plist) ) ) (setq VLADataPts (list->variantArray polypoints)) (setq obj (vla-addLightweightPolyline space VLADataPts)) (setq nr 0) (repeat (length blist) (if (/= (nth nr blist) 0) (vla-setBulge obj nr (nth nr blist)) ) (setq nr (1+ nr)) ) (if (= ic 1) (vla-put-closed obj T) ) ) (progn (if (= ic 1) (entmake '((0 . "POLYLINE") (66 . 1) (70 . 1))) (entmake '((0 . "POLYLINE") (66 . 1))) ) (setq nr 0) (repeat (length plist) (if (= bul 0) (entmake (list (cons 0 "VERTEX") (cons 10 (nth nr plist)) ) ) (entmake (list (cons 0 "VERTEX") (cons 10 (nth nr plist)) (cons 42 (nth nr blist)) ) ) ) (setq nr (1+ nr)) ) (entmake '((0 . "SEQEND"))) ) ) ) (t ; not polyline (setq lastent (entlast)) (setq lwp T) (repeat noe (setq et (cdr (assoc 72 ed1))) (cond ((= et 1) ; line (setq ed1 (member (assoc 10 (cdr ed1)) ed1)) (if A2k (vla-AddLine space (vlax-3d-point (cdr (assoc 10 ed1))) (vlax-3d-point (cdr (assoc 11 ed1))) ) (entmake (list (cons 0 "LINE") (assoc 10 ed1) (assoc 11 ed1)) ) ) (setq ed1 (cddr ed1)) ) ((= et 2) ; circular arc (setq ed1 (member (assoc 10 (cdr ed1)) ed1)) (setq ang1 (cdr (assoc 50 ed1))) (setq ang2 (cdr (assoc 51 ed1))) (setq cw (cdr (assoc 73 ed1))) (if (equal ang2 6.28319 0.00001) (progn (if A2k (vla-AddCircle space (vlax-3d-point (cdr (assoc 10 ed1))) (cdr (assoc 40 ed1)) ) (entmake (list (cons 0 "CIRCLE") (assoc 10 ed1) (assoc 40 ed1) ) ) ) (setq lwp nil) ) (if A2k (vla-AddArc space (vlax-3d-point (cdr (assoc 10 ed1))) (cdr (assoc 40 ed1)) (if (= cw 0) (- 0 ang2) ang1 ) (if (= cw 0) (- 0 ang1) ang2 ) ) (entmake (list (cons 0 "ARC") (assoc 10 ed1) (assoc 40 ed1) (cons 50 (if (= cw 0) (- 0 ang2) ang1 ) ) (cons 51 (if (= cw 0) (- 0 ang1) ang2 ) ) ) ) ) ) (setq ed1 (cddddr ed1)) ) ((= et 3) ; elliptic arc (setq ed1 (member (assoc 10 (cdr ed1)) ed1)) (setq ang1 (cdr (assoc 50 ed1))) (setq ang2 (cdr (assoc 51 ed1))) (setq cw (cdr (assoc 73 ed1))) (if A2k (progn (setq obj (vla-AddEllipse space (vlax-3d-point (cdr (assoc 10 ed1))) (vlax-3d-point (cdr (assoc 11 ed1))) (cdr (assoc 40 ed1)) ) ) (vla-put-startangle obj (if (= cw 0) (- 0 ang2) ang1)) (vla-put-endangle obj (if (= cw 0) (- 0 ang1) ang2)) ) (princ "\nElliptic arc not supported!") ) (setq lwp nil) ) ((= et 4) ; spline (setq ed1 (member (assoc 94 (cdr ed1)) ed1)) (setq knot-list nil) (setq controlpoint-list nil) (setq kn (cdr (assoc 95 ed1))) (setq cn (cdr (assoc 96 ed1))) (setq pos (vl-position (assoc 40 ed1) ed1)) (repeat kn (setq knot-list (cons (cons 40 (cdr (nth pos ed1))) knot-list)) (setq pos (1+ pos)) ) (setq pos (vl-position (assoc 10 ed1) ed1)) (repeat cn (setq controlpoint-list (cons (cons 10 (cdr (nth pos ed1))) controlpoint-list)) (setq pos (1+ pos)) ) (setq knot-list (reverse knot-list)) (setq controlpoint-list (reverse controlpoint-list)) (entmake (append (list '(0 . "SPLINE")) (list (cons 100 "AcDbEntity")) (list (cons 100 "AcDbSpline")) (list (cons 70 (+ 1 8 (* 2 (cdr (assoc 74 ed1))) (* 4 (cdr (assoc 73 ed1)))))) (list (cons 71 (cdr (assoc 94 ed1)))) (list (cons 72 kn)) (list (cons 73 cn)) knot-list controlpoint-list ) ) (setq ed1 (member (assoc 10 ed1) ed1)) (setq lwp nil) ) ) ; end cond ) ; end repeat noe (if lwp (progn (setq en1 (entnext lastent)) (setq ss (ssadd)) (ssadd en1 ss) (while (setq en2 (entnext en1)) (ssadd en2 ss) (setq en1 en2) ) (command "_.pedit" (entlast) "_Y" "_J" ss "" "") )) ) ; end t ) ; end cond ) ; end repeat loops1 (setq i (1+ i)) ) ) ) (restore) (princ) )
