用法
评论
建议
取 消
确 定
(defun curve:chain-line (pt1 / segments pts-ent i%) (setq lst-ss1 (pickset:to-list (ssget "C" (polar pt1 (* 1.25 pi) 1) (polar pt1 (* 0.25 pi) 1) (quote ((0 . "LINE,LWPOLYLINE,POLYLINE")))))) (setq pts (quote nil)) (setq segments (quote nil)) (setq pts (curve:pline-3dpoints (car lst-ss1))) (print pts) (defun ssget-by-point (pt1 / lst-ss1) (push-var) (setvar "osmode" 0) (setq lst-ss1 (pickset:to-list (ssget "C" (polar pt1 (* 1.25 pi) 10) (polar pt1 (* 0.25 pi) 10) (quote ((0 . "LINE,LWPOLYLINE,POLYLINE")))))) (pop-var) lst-ss1) (setq i% 0) (setq pt-old nil) (while (and (> (length (setq lst-ss-pre (ssget-by-point (car pts)))) 1) (/= pt-old (car pts)) (< i% 50)) (setq pt-old (car pts)) (entity:make-point (car pts)) (foreach ent% lst-ss-pre (if (null (member ent% lst-ss1)) (progn (setq lst-ss1 (cons ent% lst-ss1)) (setq pts-ent (curve:pline-3dpoints ent%)) (if (< (distance (car pts-ent) (car pts)) 0.001) (setq pts (append (reverse pts-ent) (cdr pts))) (if (< (distance (last pts-ent) (car pts)) 0.001) (setq pts (append pts-ent (cdr pts)))))))) (setq i% (1+ i%))) (while (and (> (length (setq lst-ss-pre (ssget-by-point (last pts)))) 1) (/= pt-old (last pts)) (< i% 50)) (setq pt-old (last pts)) (entity:make-point (car pts)) (foreach ent% lst-ss-pre (if (null (member ent% lst-ss1)) (progn (setq lst-ss1 (append lst-ss1 (list ent%))) (setq pts-ent (curve:pline-3dpoints ent%)) (if (< (distance (car pts-ent) (last pts)) 0.001) (setq pts (append pts (cdr pts-ent))) (if (< (distance (last pts-ent) (last pts)) 0.001) (setq pts (append pts (cdr (reverse pts-ent))))))))) (setq i% (1+ i%))) (setq pl-new (entity:make-lwpline-bold pts nil 0 0 0.3)) (print pts))
函数库使用说明
应用包
技术支持
统计信息
函数库规模: 733 个
函数库类别: 51 种
上传记录
刷新