lisp虚线自动比例源码,cad线型自动比例

  • A+
所属分类:CAD二次开发

在cad里面看到有的插件上有虚线自动比例,那怎么通过lsp实现了,起始也没有想象的那么复杂,首先需要知道线的长度,在根据长度选择合适的比例即可。没有想象的那么神奇,一下就自动了,代码实现也是一步一步来的。

比如,长度 大于于10选择的比例是5,长度大于100选择的比例是50,.。。

知道这个思路还不能造出代码来吗?系统自动命令 change,可以调节线型,比例等参数。

下面上一段单选调整比例代码;没过滤线型,没循环执行。如需批量,请自己动手循环即可

(defun c:t6 (/ bili hjbk)

(setq sfd (ssget))
(setq Q1(ssname sfd 0));取到选集中的第一个图源
;长度
(command "_lengthen" Q1 "")
(setq cdle (getvar "PERIMETER"))

;(setq hjbk (vlax-ename->vla-object Q1))
;(setq cdle (vlax-curve-getdistatparam hjbk (vlax-curve-getendparam hjbk) ) )

(princ cdle)

;根据长度选择合适的比例
(cond
((<= cdle 20)(setq bili(/ cdle 1)))
((<= cdle 60)(setq bili(/ cdle 1.5)))
( (<= cdle 90)(setq bili(/ cdle 2)))
( (<= cdle 150)(setq bili(/ cdle 3)))
( (<= cdle 200)(setq bili(/ cdle 20)))
( (<= cdle 300)(setq bili(/ cdle 24)))
( (<= cdle 350)(setq bili(/ cdle 27)))
( (<= cdle 450)(setq bili(/ cdle 32)))
( (<= cdle 550)(setq bili(/ cdle 38)))

( (<= cdle 650)(setq bili(/ cdle 42)))

( (<= cdle 780)(setq bili(/ cdle 50)))
( (<= cdle 920)(setq bili(/ cdle 55)))
( (<= cdle 1300)(setq bili(/ cdle 60)))

( (<= cdle 1600)(setq bili(/ cdle 64)))
( (<= cdle 2000)(setq bili(/ cdle 75)))

( (<= cdle 2500)(setq bili(/ cdle 85)))

((<= cdle 3000)(setq bili(/ cdle 95)))

( (<= cdle 3500)(setq bili(/ cdle 100)))

( (<= cdle 5500)(setq bili(/ cdle 120)))

( (<= cdle 7500)(setq bili(/ cdle 140)))

( (<= cdle 9500)(setq bili(/ cdle 160)))

( (<= cdle 15000)(setq bili(/ cdle 180)))
)

(cond
((<= cdle 10)(setq bili 5))
((<= cdle 50)(setq bili(* bili 1)))
((<= cdle 100)(setq bili(* bili 1.3)))
((<= cdle 150)(setq bili(* bili 2)))
((<= cdle 350)(setq bili(* bili 5)))
((<= cdle 550) (setq bili(* bili 8)))
( (<= cdle 800) (setq bili(* bili 10)))
((<= cdle 1200)(setq bili(* bili 15)))
((<= cdle 5000)(setq bili(* bili 25)))
((<= cdle 10000)(setq bili(* bili 50)))
)

(princ bili)

(command "change" Q1 "" "p" "s" bili "");调整比例
)

 

复制

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: