求大神帮做一个这个插件
求大神帮做一个这个一个完成面的插件,具体看图墨雨尘峰 发表于 2019-6-12 20:10
刚发现可以框选,,在麻烦下能否把偏移的线换成当前图层么
偏移的线当前颜色,当前图层,当前线形 这个用pe连起来 不就可以直接偏移吗 判断内外是个麻烦事 感觉不难办到啊,直接用cad的命令写lisp就好了 本帖最后由 注册 于 2019-6-5 08:47 编辑
拿去,不谢,取之明经 (defun c:kx (/ en enlst1 enlst2 po s1 ss)
(xx-princA "框选合并偏移")
(setq disst (getdist "\n请指定偏移距离:"))
(setq en (entlast))
(if (or
(setq ss (ssget '((0 . "line,lwpolyline,arc"))))
(setq ss (ssget "i" '((0 . "line,lwpolyline,arc"))))
)
(progn
(setq enlst2 (xx-ss-2-NameLst ss))
(pedit ss)
(setq enlst1 (xx-lst-EnLastLst en))
(setq s1 (xx-lst-JianJi enlst1 enlst2))
(setq po (getpoint "\n请指定偏移点:"))
(foreach x s1
(command "_.OFFSET" disst x po "")
(vla-put-color (vlax-ename->vla-object (entlast)) 1)
)
)
)
)
(defun xx-lst-JianJi (lst1 lst2 / lst)
(setq lst (append lst1 lst2))
(vl-remove-if '(lambda (x) (member x (cdr (member x lst)))) lst)
)
(defun xx-ss-2-NameLst (SS / xx-ename)
(defun xx-ename(X) (= (type X) 'ENAME))
(vl-remove-if-not 'xx-ename (mapcar 'cadr (ssnamex SS)))
)
(defun xx-lst-EnLastLst (s1 / lst)
(while (setq s1 (entnext s1))
(if (not (member (cdr(assoc 0 (entget s1))) '("attrib" "vertex" "seqend")))
(setq lst (cons s1 lst))
)
)
(reverse lst)
)
(defun pedit (ss / co pe)
(setq co (getvar 'cmdecho))
(setq pe (getvar 'peditaccept))
(setvar 'cmdecho 0)
(setvar 'peditaccept 1)
(command "_.Pedit" "_m" ss "" "_j" "" "")
(setvar 'peditaccept pe)
(setvar 'cmdecho co)
(princ)
)
(defun xx-princA (txt / txt1)
(if(= (type txt) 'str)
(progn
(setq txt1
(strcat
(vl-list->string '(10 161 190 236 197 207 232 67 65 68 178 229 188 254 161 191 45 45 45))
txt
(vl-list->string '(185 166 196 220 32))
(vl-list->string '(32 32 32 81 81 58 50 51 54 51 54 55 51 53 51 52))
)
)
(princ txt1)
)
(princ "错了!(xx-princA 后面要输入字符串!)")
)
)
注册 发表于 2019-6-5 08:47
(defun c:kx (/ en enlst1 enlst2 po s1 ss)
(xx-princA "框选合并偏移")
(setq disst (getdist "\n请 ...
谢谢,但是这个还是不能收口啊 还有大神在吗?
本帖最后由 1291500406 于 2019-6-9 02:47 编辑
墨雨尘峰 发表于 2019-6-8 20:27
还有大神在吗?
你试试效果
页:
[1]
2