kiethchung Posted September 16, 2022 Posted September 16, 2022 (defun c:pcode (/ *error* fn f l p ok lay XYZ RL CODE ) (defun *error* (msg) (if (and f (= (type f) 'FILE)) (close f) ;close the file ) ;_ end of if ) ;_ end of defun (if (and (setq fn (getfiled "\n" "" "csv;pnt;txt;*" 16)) ; get csv file (setq f (open fn "r")) ) ;_ end of and (progn (while (setq $ (read-line f)) (setq l (read (strcat "( " (vl-string-translate "," " " $) " )"))) ; retriction layer/pcode without spacing (if (setq ok (= (length l) 5)) ; format = '( p x y z d ) (progn (foreach x (list car last) (setq l (subst (vl-princ-to-string (x l)) (x l) l))) (if (and (setq lay (last l) p (vl-remove-if-not 'numberp (cdr l)) ) ;_ end of setq (= 3 (length p)) ; format = '( x y z ) (setq p (trans p 1 0)) ; convert point to ucs ) ;_ end of and (foreach xyz '( (list '(0 . "POINT") (cons 8 "XYZ") ;(cons 8 "POINT") (cons 10 p) ) ) (entmakex (eval xyz)) ; create text & point entity foreach supplied dxf data (foreach RL '( (list '(0 . "TEXT") (cons 8 "RL") (cons 10 p) (cons 1 (rtos (caddr p) 2 2)) (cons 40 (getvar 'textsize)) (cons 11 p) (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit (cons 73 1) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top ) ) (entmakex (eval RL)) ; create text & point entity foreach supplied dxf data (foreach code '( (list '(0 . "TEXT") (cons 8 "CODE") (cons 10 p) (cons 1 (strcat lay)) (cons 40 (getvar 'textsize)) (cons 11 p) (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit (cons 73 3) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top ) ) (entmakex (eval code)) ; create text & point entity foreach supplied dxf data (foreach PTNO '( (list '(0 . "TEXT") (cons 8 "PTNO") (cons 10 p) (cons 1 (strcat ptnum));HOW TO ADD POINT NUMBER (cons 40 (getvar 'textsize)) (cons 11 p) (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit (cons 73 1) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top ) ) (entmakex (eval PTNO)) ; create text & point entity foreach supplied dxf data ) ;_ end of foreach ) ;_ end of foreach ) ;_ end of foreach ) ;_ end of foreach ) ;_ end of if ) ;_ end of progn (setq $ nil) ; exit invalid format ) ;_ end of if ) ;_ end of while (if (not ok)(alert "Invalid format! Should be PXYZD")) ) ) ;_ end of if (if (and f (= (type f) 'FILE)) (close f) ;close the file ) ;_ end of if (princ) ) ;_ end of defunpcode_AA.LSP pcode_AA.LSP Quote
BIGAL Posted September 18, 2022 Posted September 18, 2022 For me rather than fix have a look at Lee-mac Point manager. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.