预定尺寸DIMLINEAR
大家好,我需要一个lisp帮助,它将在dwg上插入尺寸。根据一些标准:
-选择点A和B
-选择CG
-为特定长度创建尺寸标注(见附件)
-对齐cg上的尺寸字符串。
谢谢你的帮助
4点即时消息。pdf 试试看,让我知道。
(defun c:Test (/ a b c d x 1p 2p 3p 4p bk)
;; Tharwat 09.Dec.2014 ;;
(if
(and
(setq a (getpoint "\n Specify point A :"))
(setq b (getpoint "\n Specify point B on the right side :" a))
(if (and (> (car b) (car a))
(equal (cadr a) (cadr b) 1e-4)
)
t
(progn
(alert "Point B must be on the right side of point A and on the same line ")
nil
)
)
(setq c (getpoint "\n Specify point CG below the mid-point of A and B :"))
(setq d (distance a b))
)
(cond
((and (< (cadr c) (cadr a))
(< (car c) (car b))
(> (car c) (car a))
(< 0
(- (distance a (setq x (list (car c) (cadr a))))
(+ (* d 0.292) (/ (* d 0.208) 2.))
)
)
)
(setq 1p (polar x pi (+ (* d 0.292) (/ (* d 0.208) 2.)))
2p (polar 1p 0. (* d 0.292))
3p (polar x 0. (/ (* d 0.208) 2.))
4p (polar 3p 0. (* d 0.292))
bk (vlax-get (vla-get-activelayout
(vla-get-activedocument (vlax-get-acad-object))
)
'Block
)
)
(mapcar
'(lambda (q p)
(vla-AddDimAligned
bk
(vlax-3D-point q)
(vlax-3D-point p)
(vlax-3D-point (polar q (* pi 0.5) (/ (* d 0.208) 2.)))
)
)
(list a 1p 2p 3p 4p)
(list 1p 2p 3p 4p b)
)
(vla-AddDimAligned
bk
(vlax-3D-point a)
(vlax-3D-point b)
(vlax-3D-point (polar a (* pi 0.5) (* d 0.208)))
)
)
(t (princ "\n ** Invalid inputs !! **"))
)
)
(princ)
)(vl-load-com)
这真的很好。
如果不太麻烦,请将尺寸四舍五入到最近的英尺(例如:7’-5 15/16”到7’-0;7’-6”到8’-0”)。
非常感谢您的时间和出色的工作。
非常欢迎你。很乐意帮忙
对不起,我是公制的,不知道如何处理英尺单位,所以也许其他人可以修改我的程序,以满足您在这方面的需要。
注意:最好在中发布图像。jpeg(在以后的文章中)和这种格式可以立即在线程中显示图像,并且不需要下载就可以看到图像。谢谢
祝你好运 再次感谢你的Lisp程序
祝你有美好的一天。
我们所能做的就是将精度设置为零。
这是本机的,最小值为0
(defun c:dimft (/ *error* u ss)
(if (setq ss (ssget ":L" '((0 . "DIMENSION"))))
(foreach obj (acet-ss-to-list ss)
(mapcar ''((a b) (vlax-put(vlax-ename->vla-object obj) a b))
'("UnitsFormat" "PrimaryUnitsPrecision") '(4 0)) ;_ end of mapcar
)
) ;_ end of if
(princ)
) ;_ end of defun
hanhphuc,
谢谢你的代码。
有没有办法只将代码应用于使用Tharwat的lisp计算的那些维度(并成为其中的一部分)?
再次感谢您抽出时间。
尝试
(defun c:Test (/ a b c d x 1p 2p 3p 4p bk m-ft)
;; Tharwat 09.Dec.2014 ;;
(defun m-ft nil
(mapcar ''((a b) (vlax-put(vlax-ename->vla-object (entlast)) a b))
'("UnitsFormat" "PrimaryUnitsPrecision") '(4 0)) ;_ end of mapcar
)
...
...
...
...
...
(mapcar
'(lambda (q p)
(vla-AddDimAligned
bk
(vlax-3D-point q)
(vlax-3D-point p)
(vlax-3D-point (polar q (* pi 0.5) (/ (* d 0.208) 2.)))
)
(m-ft)
)
(list a 1p 2p 3p 4p)
(list 1p 2p 3p 4p b)
)
(vla-AddDimAligned
bk
(vlax-3D-point a)
(vlax-3D-point b)
(vlax-3D-point (polar a (* pi 0.5) (* d 0.208)))
)
(m-ft)
)
(t (princ "\n ** Invalid inputs !! **"))
)
...
...
嗯,所有的功劳都归功于塔瓦
vlax get和vlax put
页:
[1]