陈老师,向您请教!
陈老师,我做到这步就做不下去了,向您请教。运行时,几个command命令之间,不连贯;在获取剖面线那一步,我用了repeat,但不知为什么运行时总是说<BR> <BR><Selection set: 30> <BR>0 <BR>; error: bad argument type: consp <Entity name: 4007a408>
另外,您有办法将得到的新长度平分给剖面线的两个端点,再将点联成线,成为新的边界曲线吗?非常感谢!
(Defun bl (l ll)<BR> (vl-load-com)<BR> (setq a (getpoint "\n internal point:"))<BR> (setq p (getpoint "\n base point:"))<BR> (command "-boundary" a "")<BR> (command "move" "l" "" p)<BR> (command "color" 9)<BR> (command "hatch" "u" 0 0.1 "n") <BR> (command "explode" "L" "")<BR> mission is get the lengh of lines,bring into nonlinear function.<BR> (vl-load-com)<BR> (setq ss (ssget "x" '((62 . 9))))<BR> (setq i 0)<BR> (repeat (sslength ss)<BR> (setq ent (ssname ss i))<BR> (setq ens (vlax-Ename->Vla-Object (car ent)))<BR> (setq l (vlax-curve-getdistatparam ens <BR> (vlax-curve-getendparam ens )))<BR> <BR> (alert (strcat "Length = " (rtos l)))<BR> (setq ll (+ (EXPT l 3.0) l 1.0))<BR> (entdel ent)<BR> (setq i (1+ i))<BR> )
从这步以下,还没检查。<BR> <BR> <BR> <BR>(set dx(/(l'-l) 2))
(setq pt1x (cdr (assoc 10 l)))<BR>(setq pt1y (cdr (assoc 20 l)))<BR>(setq pt2x (cdr (assoc 11 l)))<BR>(setq pt2y (cdr (assoc 21 l)))<BR> <BR>(set ncl(list (- pt1x dx)))<BR>(set ncr(list (+ pt2x dx)));change the x coordinates of start and end points,but how to put back to points?
)<BR> 您最好说说您的原始条件和要达到的目标,这才好讨论...
一个物体已给,对它上面的一个面进行放大,我以立方体为例,其实希望它也能对不规则面也能操作,
在x方向上,不同的长度,放大比例不同,新的长度与原长有个一元二次方程关系,以这图为例。
先获取轮廓,剖面线,逐个获取,求长,平分新长度与旧长度差值给轮廓剖面线两端点,得新轮廓线。
谢谢
这样的问题似乎不必编程。
对于三维软件(例如Inventor)来说,这是放样特征的基本功能。 它可以进行不等比例放大吗?就是不同的长度放大比例不同? 因为Inventor是参数化设计软件,可以用表达式驱动轮廓,应当能完成的。
页:
[1]