lisp 角平分线_智能中心线 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 中心线,智能 - Powered by Discuz!...

该博客介绍了如何使用AutoLISP编程实现CAD中的中心线和角平分线的绘制功能。通过提供的代码,可以对选定的几何形状(如圆、椭圆、线段等)进行分析,从而绘制出相应的中心线或角平分线。代码中包含了处理不同几何图形的函数,如`HH:Bisect`用于绘制非平行线的角平分线,`HH:waist`用于处理平行线的情况,以及处理圆和椭圆的中心线绘制。整个程序旨在提高CAD操作的自动化和效率。
摘要由CSDN通过智能技术生成

本帖最后由 自贡黄明儒 于 2013-11-23 10:59 编辑

感谢大家帮助

;;编组开始;(command "_.undo" "be")

(defun _StartUndo (*DOC*)

(_EndUndo *DOC*)

(vla-StartUndoMark *DOC*)

)

;;结束编组;(if (= 8 (logand (getvar "undoctl") 8)) (command "_.undo" "_e"))

(defun _EndUndo (*DOC*)

(if (= 8 (logand 8 (getvar 'UNDOCTL)))

(vla-EndUndoMark *DOC*)

)

)[code="lisp]

;;中心标记CenterMark By 自贡黄明儒 2013年11月9日***********************************

(defun C:CM (/ *MSP* CIRC CLAYER1 CMDECHO1 E1EN E1ST E2EN E2ST ELLI EN1 EN2 FIL FILTERLST LIN LWP N P0 REG SS VARTXTLST X Y)

;;0 错误处理

(defun *error* (msg)

(setvar "cmdecho" cmdecho1)

(setvar "clayer" clayer1)

(vl-bt)

(if *DOC*

(_EndUndo *DOC*)         ;块内图元增减

)

(while (not (equal (getvar "cmdnames") "")) (command nil))

(princ "\n 出错啦!")

(princ)

)

  ;;1 两点之中点

(defun mid (p1 p2 / X Y)

(mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) p1 p2)

)

  ;;2.1 从选择集中分离出特定选择集

(defun wmg-ssgetp (ss filter)

(vl-cmdf "_.select" ss "")

(ssget "p" filter)

)

  ;;2.2 分离选择集

;; (optimizeCode ss vartxtlst filterlst)

(defun optimizeCode (ss vartxtlst filterlst)

(mapcar (function (lambda (x y) (set x (wmg-ssgetp ss y))))

(mapcar 'read vartxtlst)

filterlst

)

)

  ;;3 面域质心

(defun HH:REGION (en / CEN LL LST OBJ R UR)

(setq obj (vlax-ename->vla-object en))

(setq cen (vlax-safearray->list (vlax-variant-value (vla-get-Centroid obj))))

<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值